home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-01-29 | 108.9 KB | 4,099 lines |
- *** ../mh-6.7-dist/Patchlevel Wed Jan 29 16:59:52 1992
- --- Patchlevel Wed Jan 22 13:37:46 1992
- ***************
- *** 1 ****
- ! MH.6.7 patch.1a
- --- 1 ----
- ! MH.6.7 patch.2
- *** ../mh-6.7-dist/conf/mh-gen.8 Wed Jan 29 17:00:19 1992
- --- conf/mh-gen.8 Thu Jan 30 08:41:44 1992
- ***************
- *** 1,2 ****
- ! .\" @(#)$Id: mh-gen.8,v 2.54 91/01/24 08:27:50 mh Exp $
- .\" uneven inter-word spacing (nroff line adjusting) hampers readability
- --- 1,2 ----
- ! .\" @(#)$Id: mh-gen.8,v 2.55 1992/01/30 16:41:35 jromine Exp $
- .\" uneven inter-word spacing (nroff line adjusting) hampers readability
- ***************
- *** 325,326 ****
- --- 325,340 ----
- .ti -.5i
- + ATTVIBUG
- + .br
- + This option causes
- + \fIMH\fP to return to the \*(lqWhat now?\*(rq
- + prompt if your initial editor is \fBvi\fP
- + and it exits with non-zero status.
- + Use on Sun OS 4.1 and other systems where the
- + \fB/usr/ucb/vi\fP editor was changed to
- + exit with its status equal to the number of pseudo-\*(lqerrors\*(rq
- + encountered during the edit. This causes a problem for programs that
- + test the exit status of their editor and abort if the status is non-zero.
- + (This includes \fIMH\fP and programs like \fB/usr/etc/vipw\fP).
- +
- + .ti -.5i
- ATZ
- ***************
- *** 585,598 ****
- .ti -.5i
- ! SUNVIBUG
- .br
- ! This option causes
- ! \fIMH\fP to return to the \*(lqWhat now?\*(rq
- ! prompt if your initial editor is \fBvi\fP
- ! and it exits with non-zero status.
- ! Use on Sun OS 4.1 and other systems where the
- ! \fB/usr/ucb/vi\fP editor was changed to
- ! exit with its status equal to the number of pseudo-\*(lqerrors\*(rq
- ! encountered during the edit. This causes a problem for programs that
- ! test the exit status of their editor and abort if the status is non-zero.
- ! (This includes \fIMH\fP and programs like \fB/usr/etc/vipw\fP).
-
- --- 599,606 ----
- .ti -.5i
- ! SUN41
- .br
- ! Use on Sun OS 4.1 (and later?) systems. You also want
- ! \*(lqoptions SUN40\*(rq,
- ! \*(lqoptions BSD42\*(rq, \*(lqoptions BSD43\*(rq, and
- ! \*(lqoptions TYPESIG=void\*(rq.
-
- ***************
- *** 624,626 ****
- Set TYPESIG='void' on systems which use this type
- ! (e.g., SYSTEM 5 V3.0 and later or Sun OS 4.0).
-
- --- 632,634 ----
- Set TYPESIG='void' on systems which use this type
- ! (e.g., SYSTEM 5 V3.0 and later or Sun OS 4.0 and later).
-
- *** ../mh-6.7-dist/conf/mhconfig.c Wed Jan 29 17:00:20 1992
- --- conf/mhconfig.c Mon Jan 27 09:34:35 1992
- ***************
- *** 1,7 ****
- /* mhconfig.c - configure MH */
- /* cc [-DSYS5] mhconfig.c -o mhconfig */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: mhconfig.c,v 2.30 91/01/25 14:48:44 mh Exp $";
- #endif lint
-
- #include <ctype.h>
- --- 1,7 ----
- /* mhconfig.c - configure MH */
- /* cc [-DSYS5] mhconfig.c -o mhconfig */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: mhconfig.c,v 2.31 1992/01/27 17:34:29 jromine Exp $";
- #endif lint
-
- #include <ctype.h>
- ***************
- *** 32,37 ****
- --- 32,38 ----
- #define MHRELEASE "6.7" /* for version: "Maj.min.pat" */
- #define MHCENTERFOOT "MH.6.7" /* for nroff page footers */
- #define MHLEFTFOOT "[mh.6]" /* [mh.6] MH.6.6 page# */
- + #define MHSLIBVER "1.1" /* SunOS4 shared library version */
-
- #define NOTOK (-1)
-
- ***************
- *** 53,59 ****
- static int makeP = 1;
-
- static char *myname = "mhconfig";
- !
- static char *myopts = NULL;
-
- static char *binpath = "/usr/local";
- --- 54,60 ----
- static int makeP = 1;
-
- static char *myname = "mhconfig";
- ! static char *config = NULL;
- static char *myopts = NULL;
-
- static char *binpath = "/usr/local";
- ***************
- *** 276,281 ****
- --- 277,283 ----
- do_alldoc(fp); /* hack up doc/config.sed */
- }
-
- + fprintf (fp, "s%%@(MHCONFIGFILE)%%%s%%g\n", SVAL(config));
- fprintf (fp, "s%%@(MHWARNING)%%%s%%g\n", WARNING);
- fprintf (fp, "s%%@(MHRELEASE)%%%s%%g\n", MHRELEASE);
- fprintf (fp, "s%%@(MHCENTERFOOT)%%%s%%g\n", MHCENTERFOOT);
- ***************
- *** 376,381 ****
- --- 378,384 ----
- fprintf (fp, "/^@BEGIN: SHAREDLIB$/d\n/^@END: SHAREDLIB$/d\n");
- fprintf (fp, "/^@BEGIN: STDLIB$/,/^@END: STDLIB$/d\n");
- fprintf (fp, "s%%@(SLIBDIR)%%%s%%g\n",slibdir);
- + fprintf (fp, "s%%@(SLIBVER)%%%s%%g\n", MHSLIBVER);
- if (strcmp (sharedlib, "secure") == 0)
- fprintf (fp, "s%%@(SLDFLAG)%%-L%s%%g\n",slibdir);
- else
- ***************
- *** 529,535 ****
- char *ap,
- *cp,
- *dp,
- - *config,
- buffer[BUFSIZ];
- struct bind *bp;
- FILE * fp;
- --- 532,537 ----
- *** ../mh-6.7-dist/config/version.sh Fri Dec 14 13:24:13 1990
- --- config/version.sh Thu Jan 30 14:20:46 1992
- ***************
- *** 1,3 ****
- : run this script through /bin/sh
- ! : '@(#)$Id: version.sh,v 1.6 90/04/05 21:25:14 sources Exp $'
- case $# in
- --- 1,3 ----
- : run this script through /bin/sh
- ! : '@(#)$Id: version.sh,v 1.9 1992/01/30 22:20:41 jromine Exp $'
- case $# in
- ***************
- *** 43,47 ****
- BEGIN { split ("'"${1}"'", ver, ".");\
- ! major = ver[1]; minor = ver[2]; patch = ver[3]}\
- ! NR == 1 { local = $(NF) }\
- ! NR == 2 { patch = $(NF) }\
- END { local++;\
- --- 43,47 ----
- BEGIN { split ("'"${1}"'", ver, ".");\
- ! major = ver[1]; minor = ver[2]; patch = ver[3]} \
- ! NR == 1 { local = $(NF) } ;\
- ! NR == 2 { patch = $(NF) } ;\
- END { local++;\
- ***************
- *** 48,50 ****
- if (patch > 0) {\
- ! printf "char *version = \"MH %s.%s.%s #%d[UCI] ", \
- major, minor, patch, local > "version.c"; \
- --- 48,50 ----
- if (patch > 0) {\
- ! printf "char *version = \"@(#)MH %s.%s.%s #%d[UCI] ", \
- major, minor, patch, local > "version.c"; \
- ***************
- *** 54,56 ****
- } else {\
- ! printf "char *version = \"MH %s.%s #%d[UCI] ", \
- major, minor, local > "version.c"; \
- --- 54,56 ----
- } else {\
- ! printf "char *version = \"@(#)MH %s.%s #%d[UCI] ", \
- major, minor, local > "version.c"; \
- *** ../mh-6.7-dist/h/fmtcompile.h Wed Jan 29 17:00:20 1992
- --- h/fmtcompile.h Thu Jan 23 15:16:10 1992
- ***************
- *** 1,4 ****
- ! /* @(#)$Id: fmtcompile.h,v 1.5 90/12/27 17:04:12 mh Exp $ */
-
- /* Format Types */
- /* -------------*/
- --- 1,4 ----
- ! /* @(#)$Id: fmtcompile.h,v 1.8 1992/01/23 23:16:05 jromine Exp $ */
-
- /* Format Types */
- /* -------------*/
- ***************
- *** 19,103 ****
- /* types that modify the "str" or "value" registers */
- #define FT_LS_COMP 12 /* set "str" to component text */
- #define FT_LS_LIT 13 /* set "str" to literal text */
- ! #define FT_LS_TRIM 14 /* trim trailing white space from "str" */
- ! #define FT_LV_COMP 15 /* set "value" to comp (as dec. num) */
- ! #define FT_LV_COMPFLAG 16 /* set "value" to comp flag word */
- ! #define FT_LV_LIT 17 /* set "value" to literal num */
- ! #define FT_LV_DAT 18 /* set "value" to dat[n] */
- ! #define FT_LV_STRLEN 19 /* set "value" to length of "str" */
- ! #define FT_LV_PLUS_L 20 /* set "value" += literal */
- ! #define FT_LV_MINUS_L 21 /* set "value" -= literal */
- ! #define FT_LV_DIVIDE_L 22 /* set "value" to value / literal */
- ! #define FT_LV_CHAR_LEFT 23 /* set "value" to char left in output */
-
- ! #define FT_LS_MONTH 24 /* set "str" to tws month */
- ! #define FT_LS_LMONTH 25 /* set "str" to long tws month */
- ! #define FT_LS_ZONE 26 /* set "str" to tws timezone */
- ! #define FT_LS_DAY 27 /* set "str" to tws weekday */
- ! #define FT_LS_WEEKDAY 28 /* set "str" to long tws weekday */
- ! #define FT_LS_822DATE 29 /* set "str" to 822 date str */
- ! #define FT_LS_PRETTY 30 /* set "str" to pretty (?) date str */
- ! #define FT_LV_SEC 31 /* set "value" to tws second */
- ! #define FT_LV_MIN 32 /* set "value" to tws minute */
- ! #define FT_LV_HOUR 33 /* set "value" to tws hour */
- ! #define FT_LV_MDAY 34 /* set "value" to tws day of month */
- ! #define FT_LV_MON 35 /* set "value" to tws month */
- ! #define FT_LV_YEAR 36 /* set "value" to tws year */
- ! #define FT_LV_YDAY 37 /* set "value" to tws day of year */
- ! #define FT_LV_WDAY 38 /* set "value" to tws weekday */
- ! #define FT_LV_ZONE 39 /* set "value" to tws timezone */
- ! #define FT_LV_CLOCK 40 /* set "value" to tws clock */
- ! #define FT_LV_RCLOCK 41 /* set "value" to now - tws clock */
- ! #define FT_LV_DAYF 42 /* set "value" to tws day flag */
- ! #define FT_LV_DST 43 /* set "value" to tws daylight savings flag */
- ! #define FT_LV_ZONEF 44 /* set "value" to tws timezone flag */
-
- ! #define FT_LS_PERS 45 /* set "str" to person part of addr */
- ! #define FT_LS_MBOX 46 /* set "str" to mbox part of addr */
- ! #define FT_LS_HOST 47 /* set "str" to host part of addr */
- ! #define FT_LS_PATH 48 /* set "str" to route part of addr */
- ! #define FT_LS_GNAME 49 /* set "str" to group part of addr */
- ! #define FT_LS_NOTE 50 /* set "str" to comment part of addr */
- ! #define FT_LS_ADDR 51 /* set "str" to mbox@host */
- ! #define FT_LS_822ADDR 52 /* set "str" to 822 format addr */
- ! #define FT_LS_FRIENDLY 53 /* set "str" to "friendly" format addr */
- ! #define FT_LV_HOSTTYPE 54 /* set "value" to addr host type */
- ! #define FT_LV_INGRPF 55 /* set "value" to addr in-group flag */
- ! #define FT_LV_NOHOSTF 56 /* set "value" to addr no-host flag */
-
- /* Date Coercion */
- ! #define FT_LOCALDATE 57 /* Coerce date to local timezone */
- ! #define FT_GMTDATE 58 /* Coerce date to gmt */
-
- /* pre-format processing */
- ! #define FT_PARSEDATE 59 /* parse comp into a date (tws) struct */
- ! #define FT_PARSEADDR 60 /* parse comp into a mailaddr struct */
- ! #define FT_FORMATADDR 61 /* let external routine format addr */
- ! #define FT_MYMBOX 62 /* do "mymbox" test on comp */
-
- /* misc. */
- #ifdef VAN
- ! #define FT_ADDTOSEQ 63 /* add current msg to a sequence */
- #endif
-
- /* conditionals & control flow (must be last) */
- ! #define FT_SAVESTR 64 /* save current str reg */
- ! #define FT_DONE 65 /* stop formatting */
- ! #define FT_NOP 66 /* nop */
- ! #define FT_GOTO 67 /* (relative) goto */
- ! #define FT_IF_S_NULL 68 /* test if "str" null */
- ! #define FT_IF_S 69 /* test if "str" non-null */
- ! #define FT_IF_V_EQ 70 /* test if "value" = literal */
- ! #define FT_IF_V_NE 71 /* test if "value" != literal */
- ! #define FT_IF_V_GT 72 /* test if "value" > literal */
- ! #define FT_IF_MATCH 73 /* test if "str" contains literal */
- ! #define FT_IF_AMATCH 74 /* test if "str" starts with literal */
- ! #define FT_S_NULL 75 /* V = 1 if "str" null */
- ! #define FT_S_NONNULL 76 /* V = 1 if "str" non-null */
- ! #define FT_V_EQ 77 /* V = 1 if "value" = literal */
- ! #define FT_V_NE 78 /* V = 1 if "value" != literal */
- ! #define FT_V_GT 79 /* V = 1 if "value" > literal */
- ! #define FT_V_MATCH 80 /* V = 1 if "str" contains literal */
- ! #define FT_V_AMATCH 81 /* V = 1 if "str" starts with literal */
-
- #define IF_FUNCS FT_S_NULL /* start of "if" functions */
- --- 19,105 ----
- /* types that modify the "str" or "value" registers */
- #define FT_LS_COMP 12 /* set "str" to component text */
- #define FT_LS_LIT 13 /* set "str" to literal text */
- ! #define FT_LS_GETENV 14 /* set "str" to getenv(text) */
- ! #define FT_LS_TRIM 15 /* trim trailing white space from "str" */
- ! #define FT_LV_COMP 16 /* set "value" to comp (as dec. num) */
- ! #define FT_LV_COMPFLAG 17 /* set "value" to comp flag word */
- ! #define FT_LV_LIT 18 /* set "value" to literal num */
- ! #define FT_LV_DAT 19 /* set "value" to dat[n] */
- ! #define FT_LV_STRLEN 20 /* set "value" to length of "str" */
- ! #define FT_LV_PLUS_L 21 /* set "value" += literal */
- ! #define FT_LV_MINUS_L 22 /* set "value" -= literal */
- ! #define FT_LV_DIVIDE_L 23 /* set "value" to value / literal */
- ! #define FT_LV_CHAR_LEFT 24 /* set "value" to char left in output */
-
- ! #define FT_LS_MONTH 25 /* set "str" to tws month */
- ! #define FT_LS_LMONTH 26 /* set "str" to long tws month */
- ! #define FT_LS_ZONE 27 /* set "str" to tws timezone */
- ! #define FT_LS_DAY 28 /* set "str" to tws weekday */
- ! #define FT_LS_WEEKDAY 29 /* set "str" to long tws weekday */
- ! #define FT_LS_822DATE 30 /* set "str" to 822 date str */
- ! #define FT_LS_PRETTY 31 /* set "str" to pretty (?) date str */
- ! #define FT_LV_SEC 32 /* set "value" to tws second */
- ! #define FT_LV_MIN 33 /* set "value" to tws minute */
- ! #define FT_LV_HOUR 34 /* set "value" to tws hour */
- ! #define FT_LV_MDAY 35 /* set "value" to tws day of month */
- ! #define FT_LV_MON 36 /* set "value" to tws month */
- ! #define FT_LV_YEAR 37 /* set "value" to tws year */
- ! #define FT_LV_YDAY 38 /* set "value" to tws day of year */
- ! #define FT_LV_WDAY 39 /* set "value" to tws weekday */
- ! #define FT_LV_ZONE 40 /* set "value" to tws timezone */
- ! #define FT_LV_CLOCK 41 /* set "value" to tws clock */
- ! #define FT_LV_RCLOCK 42 /* set "value" to now - tws clock */
- ! #define FT_LV_DAYF 43 /* set "value" to tws day flag */
- ! #define FT_LV_DST 44 /* set "value" to tws daylight savings flag */
- ! #define FT_LV_ZONEF 45 /* set "value" to tws timezone flag */
-
- ! #define FT_LS_PERS 46 /* set "str" to person part of addr */
- ! #define FT_LS_MBOX 47 /* set "str" to mbox part of addr */
- ! #define FT_LS_HOST 48 /* set "str" to host part of addr */
- ! #define FT_LS_PATH 49 /* set "str" to route part of addr */
- ! #define FT_LS_GNAME 50 /* set "str" to group part of addr */
- ! #define FT_LS_NOTE 51 /* set "str" to comment part of addr */
- ! #define FT_LS_ADDR 52 /* set "str" to mbox@host */
- ! #define FT_LS_822ADDR 53 /* set "str" to 822 format addr */
- ! #define FT_LS_FRIENDLY 54 /* set "str" to "friendly" format addr */
- ! #define FT_LV_HOSTTYPE 55 /* set "value" to addr host type */
- ! #define FT_LV_INGRPF 56 /* set "value" to addr in-group flag */
- ! #define FT_LV_NOHOSTF 57 /* set "value" to addr no-host flag */
-
- /* Date Coercion */
- ! #define FT_LOCALDATE 58 /* Coerce date to local timezone */
- ! #define FT_GMTDATE 59 /* Coerce date to gmt */
-
- /* pre-format processing */
- ! #define FT_PARSEDATE 60 /* parse comp into a date (tws) struct */
- ! #define FT_PARSEADDR 61 /* parse comp into a mailaddr struct */
- ! #define FT_FORMATADDR 62 /* let external routine format addr */
- ! #define FT_MYMBOX 63 /* do "mymbox" test on comp */
-
- /* misc. */
- #ifdef VAN
- ! #define FT_ADDTOSEQ 64 /* add current msg to a sequence */
- #endif
-
- /* conditionals & control flow (must be last) */
- ! #define FT_SAVESTR 65 /* save current str reg */
- ! #define FT_DONE 66 /* stop formatting */
- ! #define FT_PAUSE 67 /* pause */
- ! #define FT_NOP 68 /* nop */
- ! #define FT_GOTO 69 /* (relative) goto */
- ! #define FT_IF_S_NULL 70 /* test if "str" null */
- ! #define FT_IF_S 71 /* test if "str" non-null */
- ! #define FT_IF_V_EQ 72 /* test if "value" = literal */
- ! #define FT_IF_V_NE 73 /* test if "value" != literal */
- ! #define FT_IF_V_GT 74 /* test if "value" > literal */
- ! #define FT_IF_MATCH 75 /* test if "str" contains literal */
- ! #define FT_IF_AMATCH 76 /* test if "str" starts with literal */
- ! #define FT_S_NULL 77 /* V = 1 if "str" null */
- ! #define FT_S_NONNULL 78 /* V = 1 if "str" non-null */
- ! #define FT_V_EQ 79 /* V = 1 if "value" = literal */
- ! #define FT_V_NE 80 /* V = 1 if "value" != literal */
- ! #define FT_V_GT 81 /* V = 1 if "value" > literal */
- ! #define FT_V_MATCH 82 /* V = 1 if "str" contains literal */
- ! #define FT_V_AMATCH 83 /* V = 1 if "str" starts with literal */
-
- #define IF_FUNCS FT_S_NULL /* start of "if" functions */
- *** ../mh-6.7-dist/h/formatsbr.h Fri Dec 14 13:24:16 1990
- --- h/formatsbr.h Thu Jan 23 15:14:58 1992
- ***************
- *** 1,4 ****
- --- 1,5 ----
- /* formatsbr.h - definitions for fmtscan () */
- + /* $Id: formatsbr.h,v 1.1 1992/01/23 23:14:54 jromine Exp $ */
-
- /*
- * This structure describes an "interesting" component. It holds
- ***************
- *** 78,82 ****
- #define f_value f_un.f_u_value
- };
-
- ! int fmtscan ();
- char *new_fs ();
- --- 79,83 ----
- #define f_value f_un.f_u_value
- };
-
- ! struct format *fmtscan ();
- char *new_fs ();
- *** ../mh-6.7-dist/h/mh.h Fri Dec 14 13:24:16 1990
- --- h/mh.h Thu Jan 23 16:03:59 1992
- ***************
- *** 1,5 ****
- /* mh.h - main header file for all of MH */
- ! /* @(#)$Id: mh.h,v 2.6 90/04/05 15:06:09 sources Exp $ */
-
-
- /* Well-used constants */
- --- 1,5 ----
- /* mh.h - main header file for all of MH */
- ! /* @(#)$Id: mh.h,v 2.7 1992/01/24 00:03:50 jromine Exp $ */
-
-
- /* Well-used constants */
- ***************
- *** 15,21 ****
- --- 15,25 ----
-
- #define NFOLDERS 300 /* max folder arguments on command line */
-
- + #ifndef UCI
- #define MAXFOLDER 1000 /* message increment */
- + #else
- + #define MAXFOLDER 1500 /* message increment */
- + #endif
- #define DMAXFOLDER 4 /* typical number of digits */
-
- #if !defined(BSD42) && !defined(BSD41A) && !defined(VMUNIX) && !defined(hpux)
- ***************
- *** 330,336 ****
-
- /* should be in <stdio.h> */
-
- ! #ifndef SYS5
- typedef struct _iobuf *FP;
- FP popen ();
- #else SYS5
- --- 334,340 ----
-
- /* should be in <stdio.h> */
-
- ! #if !defined(SYS5) && !defined(ncr)
- typedef struct _iobuf *FP;
- FP popen ();
- #else SYS5
- ***************
- *** 340,346 ****
-
- /* miscellaneous */
-
- ! #if !defined(BSD42) && !defined(hpux)
- #define rename(f1,f2) (link (f1, f2) != NOTOK ? unlink (f1) : NOTOK)
- #endif not BSD42
-
- --- 344,350 ----
-
- /* miscellaneous */
-
- ! #if !defined(BSD42) && !defined(hpux) && !defined(ncr)
- #define rename(f1,f2) (link (f1, f2) != NOTOK ? unlink (f1) : NOTOK)
- #endif not BSD42
-
- *** ../mh-6.7-dist/h/scansbr.h Fri Dec 14 13:24:17 1990
- --- h/scansbr.h Mon Dec 2 12:45:58 1991
- ***************
- *** 1,4 ****
- --- 1,5 ----
- /* scansbr.h - definitions for scan () */
- + /* $Header: /i1/db3/src/bs/mh-develop/mh-6.7-new/h/RCS/scansbr.h,v 1.2 1991/12/02 20:45:51 jromine Exp $ */
-
- extern char *scanl;
-
- ***************
- *** 14,26 ****
- "%4(msg)%<(cur)+%| %>%<{replied}-%|%<{encrypted}E%| %>%>\
- %02(mon{date})/%02(mday{date})%<{date} %|*%>\
- %<(mymbox{from})To:%14(friendly{to})%|%17(friendly{from})%> \
- ! %{subject}%<{body}<<%{body}>>%>"
- #else UK
- #define FORMAT \
- "%4(msg)%<(cur)+%| %>%<{replied}-%|%<{encrypted}E%| %>%>\
- %02(mday{date})/%02(mon{date})%<{date} %|*%>\
- %<(mymbox{from})To:%14(friendly{to})%|%17(friendly{from})%> \
- ! %{subject}%<{body}<<%{body}>>%>"
- #endif UK
-
- #define WIDTH 78
- --- 15,27 ----
- "%4(msg)%<(cur)+%| %>%<{replied}-%|%<{encrypted}E%| %>%>\
- %02(mon{date})/%02(mday{date})%<{date} %|*%>\
- %<(mymbox{from})To:%14(friendly{to})%|%17(friendly{from})%> \
- ! %{subject}%<{body}<<%{body}>>%>\n"
- #else UK
- #define FORMAT \
- "%4(msg)%<(cur)+%| %>%<{replied}-%|%<{encrypted}E%| %>%>\
- %02(mday{date})/%02(mon{date})%<{date} %|*%>\
- %<(mymbox{from})To:%14(friendly{to})%|%17(friendly{from})%> \
- ! %{subject}%<{body}<<%{body}>>%>\n"
- #endif UK
-
- #define WIDTH 78
- *** ../mh-6.7-dist/h/strings.h Fri Dec 14 13:24:17 1990
- --- h/strings.h Thu Jan 23 15:16:49 1992
- ***************
- *** 1,5 ****
- /* strings.h - define standard string functions */
- ! /* @(#)$Id: strings.h,v 1.7 90/04/05 16:18:34 sources Exp $ */
-
- #ifndef _STRINGS /* once-only... */
- #define _STRINGS
- --- 1,5 ----
- /* strings.h - define standard string functions */
- ! /* @(#)$Id: strings.h,v 1.8 1992/01/23 23:16:46 jromine Exp $ */
-
- #ifndef _STRINGS /* once-only... */
- #define _STRINGS
- ***************
- *** 13,19 ****
- --- 13,21 ----
- char *mktemp ();
- char *rindex ();
- #ifndef SPRINTFTYPE
- + #ifndef ncr /* NCR compiler complains about re-declaration */
- char *sprintf (); /* I guess this is the new standard */
- + #endif
- #else
- SPRINTFTYPE sprintf ();
- #endif
- *** ../mh-6.7-dist/papers/mh6.7/mh6.7.ms Fri Dec 14 13:25:17 1990
- --- papers/mh6.7/mh6.7.ms Thu Jan 30 14:41:39 1992
- ***************
- *** 1,2 ****
- ! .\" @(#)$Id: mh6.7.ms,v 1.10 90/04/10 13:23:45 sources Exp $
- .\" Standard -ms macros
- --- 1,2 ----
- ! .\" @(#)$Id: mh6.7.ms,v 1.13 1992/01/30 22:41:36 jromine Exp $
- .\" Standard -ms macros
- ***************
- *** 5,7 ****
- .ds rq \\*U
- ! .DA "April 9, 1990"
- .if n \{\
- --- 5,7 ----
- .ds rq \\*U
- ! .DA "February 1, 1992"
- .if n \{\
- ***************
- *** 10,13 ****
- .\}
- ! .EH ''Changes to MH 6.7'%'
- ! .OH ''Changes to MH 6.7'%'
- .TL
- --- 10,16 ----
- .\}
- ! .\" .EH ''Changes to MH 6.7'%'
- ! .\" .OH ''Changes to MH 6.7'%'
- ! .ds LH Changes to MH 6.7
- ! .ds CH
- ! .ds RH %
- .TL
- ***************
- *** 29,31 ****
- UCI version of the RAND MH system from MH 6.6
- ! to MH 6.7. The first part should be of interest to all users
- of MH, while the latter part is of interest only to MH
- --- 32,35 ----
- UCI version of the RAND MH system from MH 6.6
- ! to this release of MH 6.7.
- ! The first part should be of interest to all users
- of MH, while the latter part is of interest only to MH
- ***************
- *** 94,98 ****
- .KE
- .SH
- ! GENERAL CHANGES
- .LP
- The author is pleased to announce that there are very few
- --- 98,340 ----
- .KE
- + .ds LH Changes for MH 6.7.2
- + .bp
- + .\" .ds CF Feb 1, 1992
- .SH
- ! CHANGES FOR MH 6.7.2
- .LP
- + The MH.6.7.2 patch release is a maintenance
- + release.
- + This is the
- + current released version of \fIMH\fP as of February 1, 1992.
- + .PP
- + This release now supports the NCR Tower running SYS5R4.
- + The WP changes installed in MH.6.7.0 have been removed.
- + .SH
- + Shared Libraries
- + .LP
- + Support for SYS 5 shared libraries is in progress.
- + .PP
- + Support for Sun OS 4.0 shared libraries had been improved.
- + The \fIMH\fP library has been modified to move initialized
- + data into a data definition file. The shared library will
- + now consist of a \fBlibmh.so\fP and \fBlibmh.sa\fP file.
- + The shared library version number will no longer track the
- + \fIMH\fP patch release number, and its numbering begins with
- + version `1.1' with this release.
- + .SH
- + Replacement SendMail
- + .LP
- + Since many standard system programs expect to post mail by
- + invoking \fB/usr/lib/sendmail\fP,
- + a minimal replacement \fISendMail\fP is provided in
- + this release. This replacement is meant to be installed
- + on (e.g., diskless) client workstations which post mail
- + using SMTP, and do not run a message transport system.
- + It will call \fIpost\fP to post mail; be sure you have
- + configured \fIMH\fP with the `/smtp' mts option.
- + This sendmail replacement is installed in your
- + \fIMH\fP etc directory, and you should link
- + \fB/usr/lib/sendmail\fP
- + to it.
- + .KS
- + .SH
- + Format Strings
- + .LP
- + A manual page for the \fIfmtdump\fP format string disassembler
- + is supplied, and some new format functions were added:
- + .IP folder \w'%getenv'u+2n
- + In \fIscan\fP, this component escape
- + contains the name of the current folder.
- + It is not defined for other \fIMH\fP commands.
- + .IP getenv
- + This function escape returns the value of an environment variable.
- + .KE
- + .PP
- + There will be some additional changes in these routines in the
- + next patch release.
- + .KS
- + .SH
- + Other Bug Fixes and Enhancements
- + .LP
- + In addition to some other minor enhancements,
- + some bugs were fixed which in general were not user\-visible:
- + .IP "Blind lists" \w'datexparsing'u+2n
- + Users may now specify RFC822 address groups in their
- + alias files. These groups are implemented by \fIMH\fP
- + as blind lists.
- + .IP "date parsing"
- + A number of sites have brain-damaged versions of \fBlex\fP.
- + \fIMH\fP will now come with the date parser already run
- + through lex.
- + .IP mark
- + A bug dealing with \fImark\fP and the sequence named `cur'
- + is fixed. This was previously a problem for mh-e users.
- + .IP MH.doc
- + The \fIMH\fP nroff version of the manual no longer contains
- + teletype escape sequences.
- + .IP scan
- + Can now handle headers as long as 512 bytes.
- + .IP Signals
- + \fIMH\fP programs will no longer catch the \fBHUP\fP
- + and \fBTERM\fP signals while waiting for a sub-process.
- + This was causing hung processes when your terminal line was
- + was dropped unexpectedly.
- + .IP Signature
- + If your signature is not defined, \fIMH\fP will
- + use the value of the gecos field of your \fB/etc/passwd\fP
- + entry as your signature.
- + .IP "version.sh"
- + A bug in the \fBawk\fP script in \fBconfig/version.sh\fP
- + was fixed.
- + .KE
- + .ds LH Changes for MH 6.7.1a
- + .bp
- + .ds CF Janaruy 25, 1991
- + .SH
- + CHANGES FOR MH 6.7.1a
- + .LP
- + The MH.6.7.1a patch was made available
- + on January 25, 1991 for limited distribution only.
- + (This release had some known bugs, and so was
- + not widely distributed.)
- + This release incorporates several new features
- + of particular note to users of sequences and format strings,
- + as well as some general documentation improvements.
- + There are a few minor enhancements and internal bug fixes also.
- + Complete documentation of these changes is given in
- + the individual manual pages, and the \fBREAD-ME\fP file.
- + .SH
- + Message Sequences
- + .LP
- + A new manual page, \fImh\-sequence\0\fP(5), has been added.
- + This manual page attempts to completely document the
- + syntax and semantics of \fIMH\fP message sequence specifications.
- + .PP
- + A powerful new feature is the ability to specify message
- + ranges with user-defined sequences. The specification
- + \*(lqname:n\*(rq may be used, and it designates up to the
- + first `n' messages (or last `n' messages for `-n')
- + which are elements of the user-defined sequence `name'.
- + .PP
- + The message
- + specifications \*(lqname:next\*(rq and \*(lqname:prev\*(rq
- + may also be used, and they
- + designate the
- + next or previous message (relative to the current message)
- + which is an element of the user-defined sequence `name'.
- + The specificaitions
- + \*(lqname:first\*(rq and \*(lqname:last\*(rq are equivalent
- + to \*(lqname:1\*(rq and \*(lqname:\-1\*(rq, respectively.
- + The specification \*(lqname:cur\*(rq is not allowed
- + (use just \*(lqcur\*(rq instead).
- + .PP
- + These specifications allow the user to step through
- + a sequence with a command like \*(lqshow name:next\*(rq.
- + .SH
- + Format Strings
- + .LP
- + \fIMH\fP format strings now support an if-then-elseif-else
- + clause (the `elseif' is new). This will make
- + format strings with multi-case conditions somewhat less complex.
- + .PP
- + A new format function `addr' had been added. This function
- + takes an address header name as its argument, and returns
- + a rendering of the address contained in that header
- + as \*(lquser@host\*(rq or \*(lqhost!user\*(rq.
- + .PP
- + Format widths now may be specified as a negative number.
- + This causes the output to be right-justified
- + within the format width.
- + .KS
- + .SH
- + Other Changes
- + .LP
- + Along with a few minor enhancements,
- + some bugs were fixed which in general were not user-visible:
- + .IP "fmtdump" \w'whatnow'u+2n
- + This new program
- + produces an pseudo-language
- + representation of an \fIMH\fP format file, vaguely
- + reminiscent of assembly language. While this output format
- + is not explicitly documented,
- + it can still be useful when debugging \fIMH\fP format files.
- + .IP "refile"
- + Now takes a `\-\[no\]rmmproc' switch. This makes it
- + easier to avoid loops when your \*(lqrmmproc\*(rq calls \fIrefile\fP.
- + .IP "slocal"
- + A problem with the UUCP-style mailboxes,
- + the `RPATHS' configuration option,
- + and the \*(lqReturn-Path:\*(rq header was fixed.
- + .IP "sortm"
- + Will ensure that no messages are lost if it is interrupted.
- + .IP "whatnow"
- + Will now tell you where it is leaving the draft, when
- + interrupted in the initial edit. Previously the draft
- + was simply unlinked.
- + .KE
- + .KS
- + .SH
- + Compilation Options
- + .IP "LOCKF" \w'whatnow'u+2n
- + This option causes \fIMH\fP to use the \fBlockf()\fP
- + system call for locking (if available),
- + instead of \fBflock()\fP.
- + .KE
- + .ds LH Changes for MH 6.7.1
- + .bp
- + .ds CF December 14, 1990
- + .SH
- + CHANGES FOR MH 6.7.1
- + .LP
- + The MH.6.7.1 patch release is a maintenance
- + release, and as such, provides few changes from
- + the previous release. This is the
- + current released version of \fIMH\fP as of December 14, 1990.
- + .SH
- + User-Visible Changes
- + .LP
- + The major change in this release is to the
- + POP daemon (popd). In \fIMH\fP 6.7,
- + it was changed to be able to read both UUCP and
- + MMDF-style mailboxes. This did not work as reported. The
- + code has now been changed to parse MMDF-style mailboxes if
- + you are configuring MH to run with MMDF as your message
- + transport system. Otherwise, UUCP-style mailboxes are
- + expected.
- + .PP
- + Since there are number of client programs available for
- + only the POP2 protocol instead of POP3, popd has been
- + updated to support both protocols. This is a major
- + win. If you are compiling
- + with POP turned on, add the `POP2' option to
- + your \fIMH\fP config file, and the POP daemon
- + will respond to POP2 or POP3 commands. If you're using
- + POP, there's no reason not to include this option; it does
- + not affect the existing support for POP3.
- + .KS
- + .SH
- + Internal Changes
- + .LP
- + Some bugs were fixed which in general were not user-visible:
- + .IP "context" \w'replnnetcn'u+2n
- + Errors when writing out sequences are detected correctly.
- + .IP "inc"
- + No longer inserts extra blank lines into messages.
- + .IP "mh-format"
- + A nil pointer bug in the address parser was fixed.
- + .IP "repl, etc."
- + The malloc/free problem has been fixed.
- + .IP "rmf"
- + A spelling error in the `\-nointeractive' switch has been corrected.
- + .IP "rcvtty"
- + Will not print the message size if not available (i.e., zero).
- + .IP "send/post"
- + Illegal signatures (those containing unquoted "."s) will be quoted.
- + .KE
- + .ds LH Changes for MH 6.7.0
- + .bp
- + .ds CF April 12, 1990
- + .SH
- + GENERAL CHANGES FOR MH 6.7.0
- + .LP
- The author is pleased to announce that there are very few
- ***************
- *** 106,107 ****
- --- 348,351 ----
- it is backward\-compatible with the previous release.
- + \fIMH\fP 6.7.0 is the current released version of \fIMH\fP
- + as of April 12, 1990.
- .PP
- *** ../mh-6.7-dist/sbr/addrsbr.c Fri Dec 14 13:25:31 1990
- --- sbr/addrsbr.c Thu Jan 30 14:39:50 1992
- ***************
- *** 1,6 ****
- /* addrsbr.c - parse addresses 822-style */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: addrsbr.c,v 1.7 90/11/05 12:26:41 mh Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* addrsbr.c - parse addresses 822-style */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: addrsbr.c,v 1.10 1992/01/30 22:39:48 jromine Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 106,120 ****
-
- char *getusr ();
-
- -
- - #ifdef WP
- - int do_wp = 0;
- -
- - #ifdef BERK
- - char *wp_expand ();
- - #endif
- - #endif
- -
- /* */
-
- char *getname (addrs)
- --- 106,111 ----
- ***************
- *** 187,221 ****
- while ( (c = *addrs++) == ',' || isspace(c))
- ;
-
- - #ifdef WP
- - if (do_wp && c == '<' && *addrs == '<') {
- - register char *cp,
- - *dp,
- - *ep;
- -
- - if (cp = index (++addrs, '>')) {
- - *++cp = NULL;
- - if (dp = wp_expand (addrs, NULLCP)) {
- - *(addrs - 1) = NULL;
- - ep = concat (saved_addr, dp, cp, NULLCP);
- - addrs = ep + strlen (saved_addr);
- - while ((c = *addrs++) == ',' || isspace (c))
- - continue;
- - free (saved_addr);
- - saved_addr = ep;
- - free (dp);
- - }
- - else {
- - err = "unable to expand WhitePages query";
- - (void) strcpy (adrtext, addrs);
- - addrs = cp;
- - goto out;
- - }
- -
- - }
- - }
- - #endif
- -
- *nxtout = *adrcopy = '\0';
- while (state != EOA) {
- *adrcopy++ = c;
- --- 178,183 ----
- ***************
- *** 316,339 ****
- * addr points to where we should start scanning next time.
- */
- *(nxtout-1) = *(adrcopy-1) = '\0';
- - #ifdef WP
- - out: ;
- - #endif
- if (*adr && !err) {
- adr_ptr = addrs-1;
- - #ifndef WP
- return adrtext;
- - #endif
- } else {
- free (saved_addr);
- adr_ptr = NULL;
- - #ifndef WP
- return NULL;
- - #endif
- }
- - #ifdef WP
- - return adrtext;
- - #endif
- #else not BERK
- register struct adrx *ap;
-
- --- 278,291 ----
- ***************
- *** 888,1036 ****
-
- return 0;
- }
- -
- - /* */
- -
- - #ifdef WP
- - #include <signal.h>
- -
- -
- - static char *fredproc = NULL;
- -
- -
- - char *wp_expand (query, error)
- - char *query,
- - *error;
- - {
- - register int cc,
- - i,
- - vecp;
- - TYPESIG (*istat) (), (*qstat) (), (*pstat) ();
- - register char *bp,
- - *cp;
- - char *ep,
- - buffer[BUFSIZ],
- - fds[10],
- - *vec[10];
- - static int child_id = NOTOK,
- - pdi[2],
- - pdo[2];
- -
- - if (error)
- - (void) strcpy (error, "unable to expand WhitePages query: ");
- -
- - if (child_id == NOTOK || kill (child_id, 0) == NOTOK) {
- - if (!isatty (fileno (stdout))) {
- - if (error)
- - (void) strcat (error, "not a tty");
- - return NULLCP;
- - }
- -
- - if (fredproc == NULL && (fredproc = m_find ("fredproc")) == NULL)
- - fredproc = "fred";
- -
- - if (pipe (pdi) == NOTOK) {
- - if (error)
- - (void) strcat (error, "unable to pipe");
- -
- - return NULLCP;
- - }
- -
- - if (pipe (pdo) == NOTOK) {
- - if (error)
- - (void) strcat (error, "unable to pipe");
- -
- - losing: ;
- - (void) close (pdi[0]);
- - (void) close (pdi[1]);
- - return NULLCP;
- - }
- -
- - for (i = 0; (child_id = vfork ()) == NOTOK && i < 5; i++)
- - sleep (5);
- -
- - switch (child_id) {
- - case NOTOK:
- - if (error)
- - (void) strcat (error, "unable to fork");
- -
- - (void) close (pdo[0]);
- - (void) close (pdo[1]);
- - goto losing;
- -
- - case OK:
- - (void) close (pdi[0]);
- - (void) close (pdo[1]);
- - (void) sprintf (fds, "%d %d", pdo[0], pdi[1]);
- - vecp = 0;
- - vec[vecp++] = r1bindex (fredproc, '/');
- - vec[vecp++] = "-q";
- - vec[vecp++] = fds;
- - vec[vecp] = NULL;
- - execvp (fredproc, vec);
- - _exit (-1); /* NOTREACHED */
- -
- - default:
- - (void) close (pdi[1]);
- - (void) close (pdo[0]);
- - break;
- - }
- - }
- -
- - istat = signal (SIGINT, SIG_IGN);
- - qstat = signal (SIGQUIT, SIG_IGN);
- -
- - pstat = signal (SIGPIPE, SIG_IGN);
- -
- - (void) sprintf (buffer, "%s\n", query);
- - cc = write (pdo[1], buffer, i = strlen (buffer));
- -
- - (void) signal (SIGPIPE, pstat);
- -
- - if (cc != i) {
- - if (error)
- - (void) strcat (error, "write to pipe failed");
- -
- - lost_child: ;
- - (void) kill (child_id, SIGTERM);
- - (void) close (pdi[0]);
- - (void) close (pdo[1]);
- -
- - child_id = NOTOK;
- - return NULLCP;
- - }
- -
- - for (ep = (bp = buffer) + sizeof buffer - 1;
- - (i = read (pdi[0], bp, ep - bp)) > 0; ) {
- - for (cp = bp + i; bp < cp; bp++)
- - if (*bp == '\n')
- - break;
- - if (bp < cp)
- - break;
- - }
- -
- - (void) signal (SIGINT, istat);
- - (void) signal (SIGQUIT, qstat);
- -
- - if (i == NOTOK) {
- - if (error)
- - (void) strcat (error, "read from pipe failed");
- - goto lost_child;
- - }
- - if (i == 0) {
- - if (error)
- - (void) sprintf (error + strlen (error), "%s exited prematurely",
- - fredproc);
- - goto lost_child;
- - }
- - *bp = NULL;
- -
- - if (error)
- - if (bp != buffer)
- - error[0] = NULL;
- - else
- - (void) strcpy (error, "unable to expand WhitePages query");
- -
- - return (*buffer ? getcpy (buffer) : NULLCP);
- - }
- - #endif
- --- 840,842 ----
- *** ../mh-6.7-dist/sbr/copy.c Fri Dec 14 13:25:33 1990
- --- sbr/copy.c Thu Jan 23 15:11:26 1992
- ***************
- *** 9,12 ****
- continue;
-
- return (to - 1);
- ! };
- --- 9,12 ----
- continue;
-
- return (to - 1);
- ! }
- *** ../mh-6.7-dist/sbr/discard.c Fri Dec 14 13:25:33 1990
- --- sbr/discard.c Thu Feb 14 14:49:10 1991
- ***************
- *** 1,4 ****
- --- 1,7 ----
- /* discard.c - discard output on a file pointer */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: discard.c,v 1.4 90/04/05 15:31:32 sources Exp $";
- + #endif lint
-
- #include "../h/mh.h"
- #include <stdio.h>
- *** ../mh-6.7-dist/sbr/fmtcompile.c Wed Jan 29 17:00:21 1992
- --- sbr/fmtcompile.c Thu Jan 23 15:11:10 1992
- ***************
- *** 1,6 ****
- /* fmtcompile.c - "compile" format strings for fmtscan */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: fmtcompile.c,v 1.9 91/01/10 08:35:40 mh Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* fmtcompile.c - "compile" format strings for fmtscan */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: fmtcompile.c,v 1.10 1992/01/23 23:10:58 jromine Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 63,68 ****
- --- 63,69 ----
-
- "comp", TF_COMP, FT_LS_COMP, 0, TFL_PUTS,
- "lit", TF_STR, FT_LS_LIT, 0, TFL_PUTS,
- + "getenv", TF_STR, FT_LS_GETENV, 0, TFL_PUTS,
- "trim", TF_EXPR, FT_LS_TRIM, 0, 0,
- "compval", TF_COMP, FT_LV_COMP, 0, TFL_PUTN,
- "compflag", TF_COMP, FT_LV_COMPFLAG, 0, TFL_PUTN,
- ***************
- *** 175,180 ****
- --- 176,182 ----
- static char *do_func();
- static char *do_expr();
- static char *do_if();
- + static char *do_loop();
-
- static char *format_string;
- static char *usr_fstring; /* for CERROR */
- ***************
- *** 241,247 ****
- if (*cp) {
- CERROR("extra '%>', '%|' or '%?'");
- }
- ! NEW(FT_DONE,0,0);
- *fmt = formatvec;
-
- return (ncomp);
- --- 243,249 ----
- if (*cp) {
- CERROR("extra '%>', '%|' or '%?'");
- }
- ! LV(FT_DONE,0); /* really done */
- *fmt = formatvec;
-
- return (ncomp);
- ***************
- *** 280,285 ****
- --- 282,288 ----
- case '|':
- case '>':
- case '?':
- + case ']':
- return (cp);
-
- case '<':
- ***************
- *** 286,291 ****
- --- 289,298 ----
- cp = do_if(++cp);
- break;
-
- + case '[': /* ] */
- + cp = do_loop(++cp);
- + break;
- +
- default:
- cp = do_spec(cp);
- break;
- ***************
- *** 511,516 ****
- --- 518,541 ----
- CERROR ("'(', '{', '%<' or ')' expected");
- }
- return (cp);
- + }
- +
- + static char *do_loop(sp)
- + register char *sp;
- + {
- + register char *cp = sp;
- + struct format *floop;
- +
- + floop = next_fp;
- + cp = compile (cp);
- + if (*cp++ != ']')
- + CERROR ("']' expected");
- +
- + LV(FT_DONE, 1); /* not yet done */
- + LV(FT_GOTO, 0);
- + fp->f_skip = floop - fp; /* skip backwards */
- +
- + return cp;
- }
-
- static char *do_if(sp)
- *** /dev/null Thu Jan 30 13:49:21 1992
- --- sbr/formatdef.c Fri Jan 24 10:22:19 1992
- ***************
- *** 0 ****
- --- 1,7 ----
- + /* formatdef.c - some defines for sbr/formatsbr.c */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: formatdef.c,v 1.2 1992/01/24 18:22:15 jromine Exp $";
- + #endif lint
- + #include "../h/addrsbr.h"
- +
- + int fmt_norm = AD_NAME;
- *** ../mh-6.7-dist/sbr/formatsbr.c Wed Jan 29 17:00:21 1992
- --- sbr/formatsbr.c Fri Jan 24 10:09:34 1992
- ***************
- *** 1,6 ****
- /* formatsbr.c - format string interpretation */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: formatsbr.c,v 1.12 91/01/09 22:34:45 mh Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* formatsbr.c - format string interpretation */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: formatsbr.c,v 1.14 1992/01/24 18:09:25 jromine Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 27,33 ****
-
- static normalize();
-
- ! int fmt_norm = AD_NAME;
- struct mailname fmt_mnull;
-
-
- --- 27,33 ----
-
- static normalize();
-
- ! extern int fmt_norm; /* defined in sbr/formatdef.c = AD_NAME */
- struct mailname fmt_mnull;
-
-
- ***************
- *** 223,228 ****
- --- 223,229 ----
- "September","October", "November","December" };
-
-
- + struct format *
- fmtscan (format, scanl, width, dat)
- struct format *format;
- char *scanl;
- ***************
- *** 390,395 ****
- --- 391,400 ----
- case FT_LS_LIT:
- str = fmt->f_text;
- break;
- + case FT_LS_GETENV:
- + if (!(str = getenv (fmt->f_text)))
- + str = "";
- + break;
- case FT_LS_TRIM:
- if (str) {
- register char *xp;
- ***************
- *** 744,752 ****
- }
- fmt++;
- }
- finished:;
- if (cp[-1] != '\n')
- *cp++ = '\n';
- *cp = NULL;
- ! return (value);
- }
- --- 749,769 ----
- }
- fmt++;
- }
- + #ifndef JLR
- finished:;
- if (cp[-1] != '\n')
- *cp++ = '\n';
- *cp = NULL;
- ! return ((struct format *)0);
- ! #else /* JLR */
- ! if (cp[-1] != '\n')
- ! *cp++ = '\n';
- ! while (fmt->f_type != FT_DONE)
- ! fmt++;
- !
- ! finished:;
- ! *cp = '\0';
- ! return (fmt -> f_value ? ++fmt : (struct format *)0);
- !
- ! #endif /* JLR */
- }
- *** ../mh-6.7-dist/sbr/help.c Fri Dec 14 13:25:35 1990
- --- sbr/help.c Fri Jan 24 17:19:15 1992
- ***************
- *** 1,4 ****
- --- 1,7 ----
- /* help.c - print the usage line */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: help.c,v 1.2 1992/01/25 01:19:05 jromine Exp $";
- + #endif lint
-
- #include "../h/mh.h"
- #include <stdio.h>
- ***************
- *** 22,28 ****
- printf (" switches are:\n");
- printsw (ALL, swp, "-");
-
- ! printf ("\nversion: %s\n", version);
-
- nameoutput = linepos = 0;
- outputlinelen = OUTPUTLINELEN;
- --- 25,33 ----
- printf (" switches are:\n");
- printsw (ALL, swp, "-");
-
- ! if (ssequal ("@(#)", cp = version))
- ! cp += 4;
- ! printf ("\nversion: %s\n", cp);
-
- nameoutput = linepos = 0;
- outputlinelen = OUTPUTLINELEN;
- *** ../mh-6.7-dist/sbr/m_convert.c Wed Jan 29 17:00:22 1992
- --- sbr/m_convert.c Tue Feb 12 16:51:12 1991
- ***************
- *** 1,6 ****
- /* m_convert.c - parse a message sequence and set SELECTED */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: m_convert.c,v 1.6 91/01/09 11:19:24 mh Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* m_convert.c - parse a message sequence and set SELECTED */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: m_convert.c,v 1.7 91/02/12 16:51:00 mh Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 270,275 ****
- --- 270,277 ----
- register char *dp;
-
- if (strcmp (cp, "cur") == 0)/* hack for "cur-xyz", etc. */
- + return OK;
- + if (ssequal ("cur:", cp)) /* this code need to be rewritten... */
- return OK;
-
- if (inverted = (dp = m_find (nsequence)) && *dp && ssequal (dp, cp))
- *** ../mh-6.7-dist/sbr/m_getfld.c Fri Dec 14 13:25:37 1990
- --- sbr/m_getfld.c Mon Jan 27 10:00:52 1992
- ***************
- *** 1,6 ****
- /* m_getfld.c - read/parse a message */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: m_getfld.c,v 1.8 90/04/18 13:48:12 sources Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* m_getfld.c - read/parse a message */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: m_getfld.c,v 1.9 1992/01/24 18:03:41 jromine Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 143,154 ****
-
- static unsigned char **pat_map;
-
- ! int msg_count = 0; /* disgusting hack for "inc" so it can
- * know how many characters were stuffed
- * in the buffer on the last call (see
- * comments in uip/scansbr.c) */
-
- ! int msg_style = MS_DEFAULT;
- /*
- * The "full" delimiter string for a packed maildrop consists
- * of a newline followed by the actual delimiter. E.g., the
- --- 143,155 ----
-
- static unsigned char **pat_map;
-
- ! extern int msg_count; /* defined in sbr/m_msgdef.c = 0
- ! * disgusting hack for "inc" so it can
- * know how many characters were stuffed
- * in the buffer on the last call (see
- * comments in uip/scansbr.c) */
-
- ! extern int msg_style; /* defined in sbr/m_msgdef.c = MS_DEFAULT */
- /*
- * The "full" delimiter string for a packed maildrop consists
- * of a newline followed by the actual delimiter. E.g., the
- ***************
- *** 161,167 ****
- * is used in m_Eom because the first character of the string
- * has been read and matched before m_Eom is called.
- */
- ! char *msg_delim = "";
- static unsigned char *fdelim;
- static unsigned char *delimend;
- static int fdelimlen;
- --- 162,168 ----
- * is used in m_Eom because the first character of the string
- * has been read and matched before m_Eom is called.
- */
- ! extern char *msg_delim; /* defined in sbr/m_msgdef.c = "" */
- static unsigned char *fdelim;
- static unsigned char *delimend;
- static int fdelimlen;
- *** /dev/null Thu Jan 30 13:49:21 1992
- --- sbr/m_msgdef.c Fri Jan 24 10:23:08 1992
- ***************
- *** 0 ****
- --- 1,25 ----
- + /* m_msgdef.c - some defines for sbr/m_getfld.c */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: m_msgdef.c,v 1.1 1992/01/24 18:22:58 jromine Exp $";
- + #endif lint
- + #include "../h/mh.h"
- +
- + int msg_count = 0; /* disgusting hack for "inc" so it can
- + * know how many characters were stuffed
- + * in the buffer on the last call (see
- + * comments in uip/scansbr.c) */
- +
- + int msg_style = MS_DEFAULT;
- + /*
- + * The "full" delimiter string for a packed maildrop consists
- + * of a newline followed by the actual delimiter. E.g., the
- + * full string for a Unix maildrop would be: "\n\nFrom ".
- + * "Fdelim" points to the start of the full string and is used
- + * in the BODY case of the main routine to search the buffer for
- + * a possible eom. Msg_delim points to the first character of
- + * the actual delim. string (i.e., fdelim+1). Edelim
- + * points to the 2nd character of actual delimiter string. It
- + * is used in m_Eom because the first character of the string
- + * has been read and matched before m_Eom is called.
- + */
- + char *msg_delim = "";
- *** ../mh-6.7-dist/sbr/m_seq.c Fri Dec 14 13:25:38 1990
- --- sbr/m_seq.c Thu Feb 14 14:44:50 1991
- ***************
- *** 1,4 ****
- --- 1,7 ----
- /* m_seq.c - print out a message sequence */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: m_seq.c,v 1.7 91/02/14 14:44:38 mh Exp $";
- + #endif lint
-
- #include "../h/mh.h"
- #include <stdio.h>
- ***************
- *** 15,26 ****
- register char *bp;
- static char buffer[BUFSIZ*2]; /* for big sequences */
-
- ! if (strcmp(current, cp) == 0) {
- ! if (mp->curmsg) {
- ! (void) sprintf(buffer, "%s", m_name(mp->curmsg));
- ! return (buffer);
- ! } else
- ! return (NULL);
- }
- for (i = 0; mp->msgattrs[i]; i++)
- if (strcmp(mp->msgattrs[i], cp) == 0)
- --- 18,31 ----
- register char *bp;
- static char buffer[BUFSIZ*2]; /* for big sequences */
-
- ! if (strcmp (current, cp) == 0) {
- ! /* assume this is in sync with msgstats["cur"] */
- ! /* see m_seqadd() for details */
- ! if (mp->curmsg) {
- ! (void) sprintf(buffer, "%s", m_name(mp->curmsg));
- ! return (buffer);
- ! } else
- ! return (NULL);
- }
- for (i = 0; mp->msgattrs[i]; i++)
- if (strcmp(mp->msgattrs[i], cp) == 0)
- *** ../mh-6.7-dist/sbr/m_seqnew.c Fri Dec 14 13:25:39 1990
- --- sbr/m_seqnew.c Thu Feb 14 14:46:38 1991
- ***************
- *** 1,4 ****
- --- 1,7 ----
- /* m_seqnew.c - manage sequences */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: m_seqnew.c,v 1.5 91/02/14 14:46:26 mh Exp $";
- + #endif lint
-
- #include "../h/mh.h"
- #include <ctype.h>
- ***************
- *** 69,74 ****
- --- 72,81 ----
-
- if (!m_seqok (cp))
- return 0;
- +
- + /* keep mp->curmsg & msgattrs["cur"] in sync - see m_seq() */
- + if (strcmp (current,cp) == 0)
- + mp->curmsg = j;
-
- if (public == -1) /* XXX */
- public = mp -> msgflags & READONLY ? 0 : 1;
- *** ../mh-6.7-dist/sbr/makedir.c Fri Dec 14 13:25:40 1990
- --- sbr/makedir.c Thu Jan 23 15:12:50 1992
- ***************
- *** 1,4 ****
- --- 1,7 ----
- /* makedir.c - make a directory */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: makedir.c,v 1.7 1992/01/23 23:12:43 jromine Exp $";
- + #endif lint
-
- #if defined (BSD42) || defined (hpux)
- /* Modified to try recursive create. Really, this should be broken
- ***************
- *** 28,34 ****
- {
- int pid;
- register char *cp;
- ! #if defined (BSD42) || defined (hpux)
- register char *c;
- char path[MAXPATHLEN];
- #endif BSD42
- --- 31,37 ----
- {
- int pid;
- register char *cp;
- ! #if defined (BSD42) || defined (hpux) || defined (SYS5DIR)
- register char *c;
- char path[MAXPATHLEN];
- #endif BSD42
- *** ../mh-6.7-dist/sbr/pidwait.c Fri Dec 14 13:25:41 1990
- --- sbr/pidwait.c Wed Jan 29 15:57:35 1992
- ***************
- *** 1,4 ****
- --- 1,7 ----
- /* pidwait.c - wait for child to exit */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: pidwait.c,v 1.5 1992/01/29 23:57:28 jromine Exp $";
- + #endif lint
-
- #include "../h/mh.h"
- #include <signal.h>
- ***************
- *** 21,30 ****
- #endif BSD42
-
- if (sigsok == NOTOK) {
- hstat = signal (SIGHUP, SIG_IGN);
- istat = signal (SIGINT, SIG_IGN);
- qstat = signal (SIGQUIT, SIG_IGN);
- - tstat = signal (SIGTERM, SIG_IGN);
- }
-
- while ((pid = wait (&status)) != NOTOK && pid != id)
- --- 24,35 ----
- #endif BSD42
-
- if (sigsok == NOTOK) {
- + #ifdef notdef /* I don't see why to trap these... */
- hstat = signal (SIGHUP, SIG_IGN);
- + tstat = signal (SIGTERM, SIG_IGN);
- + #endif
- istat = signal (SIGINT, SIG_IGN);
- qstat = signal (SIGQUIT, SIG_IGN);
- }
-
- while ((pid = wait (&status)) != NOTOK && pid != id)
- ***************
- *** 31,40 ****
- continue;
-
- if (sigsok == NOTOK) {
- (void) signal (SIGHUP, hstat);
- (void) signal (SIGINT, istat);
- (void) signal (SIGQUIT, qstat);
- - (void) signal (SIGTERM, tstat);
- }
-
- #ifndef BSD42
- --- 36,47 ----
- continue;
-
- if (sigsok == NOTOK) {
- + #ifdef notdef
- (void) signal (SIGHUP, hstat);
- + (void) signal (SIGTERM, tstat);
- + #endif
- (void) signal (SIGINT, istat);
- (void) signal (SIGQUIT, qstat);
- }
-
- #ifndef BSD42
- *** ../mh-6.7-dist/sbr/strindex.c Fri Dec 14 13:25:42 1990
- --- sbr/strindex.c Thu Jan 23 15:13:41 1992
- ***************
- *** 1,4 ****
- --- 1,7 ----
- /* strindex.c - "unsigned" lexical index */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: strindex.c,v 2.2 1990/04/05 15:30:30 sources Exp $";
- + #endif lint
-
-
- int stringdex (p1, p2)
- *** ../mh-6.7-dist/uip/fmtdump.c Wed Jan 29 17:00:22 1992
- --- uip/fmtdump.c Thu Jan 23 16:04:50 1992
- ***************
- *** 1,5 ****
- #ifndef lint
- ! static char ident[] = "@(#)$Id: fmtdump.c,v 1.2 91/01/25 15:38:06 mh Exp $";
- #endif
- /*
- * fmtdump - compile format file and dump out instructions
- --- 1,5 ----
- #ifndef lint
- ! static char ident[] = "@(#)$Id: fmtdump.c,v 1.7 1992/01/24 00:04:45 jromine Exp $";
- #endif
- /*
- * fmtdump - compile format file and dump out instructions
- ***************
- *** 66,72 ****
- if (findlabel(addr) < 0)
- assignlabel(addr);
- }
- ! if (fmt->f_type == FT_DONE)
- break;
- }
-
- --- 66,72 ----
- if (findlabel(addr) < 0)
- assignlabel(addr);
- }
- ! if (fmt->f_type == FT_DONE && fmt->f_value == 0)
- break;
- }
-
- ***************
- *** 73,79 ****
- /* Dump them out! */
- for (fmt = fmth; fmt; ++fmt) {
- dumpone(fmt);
- ! if (fmt->f_type == FT_DONE)
- break;
- }
- }
- --- 73,79 ----
- /* Dump them out! */
- for (fmt = fmth; fmt; ++fmt) {
- dumpone(fmt);
- ! if (fmt->f_type == FT_DONE && fmt->f_value == 0)
- break;
- }
- }
- ***************
- *** 135,140 ****
- --- 135,141 ----
- printf(", c_flags %d", fmt->f_comp->c_flags);
- break;
-
- + case FT_LS_ADDR:
- case FT_LS_PERS:
- case FT_LS_MBOX:
- case FT_LS_HOST:
- ***************
- *** 196,205 ****
- --- 197,208 ----
- putchar('\'');
- break;
-
- +
- case FT_IF_S:
- case FT_IF_S_NULL:
- case FT_IF_MATCH:
- case FT_IF_AMATCH:
- + printf(" false, goto");
- case FT_GOTO:
- i = findlabel(fmt + fmt->f_skip);
- printf(" L%d", i);
- ***************
- *** 227,232 ****
- --- 230,240 ----
- litputs(fmt->f_text);
- break;
-
- + case FT_LS_GETENV:
- + printf(" getenv ");
- + litputs(fmt->f_text);
- + break;
- +
- case FT_LS_TRIM:
- printf(", width %d", fmt->f_width);
- break;
- ***************
- *** 279,284 ****
- --- 287,293 ----
- case FT_PUTADDR: return("PUTADDR");
- case FT_LS_COMP: return("LS_COMP");
- case FT_LS_LIT: return("LS_LIT");
- + case FT_LS_GETENV: return("LS_GETENV");
- case FT_LS_TRIM: return("LS_TRIM");
- case FT_LV_COMP: return("LV_COMP");
- case FT_LV_COMPFLAG: return("LV_COMPFLAG");
- ***************
- *** 310,315 ****
- --- 319,325 ----
- case FT_LV_DAYF: return("LV_DAYF");
- case FT_LV_DST: return("LV_DST");
- case FT_LV_ZONEF: return("LV_ZONEF");
- + case FT_LS_ADDR: return("LS_ADDR");
- case FT_LS_PERS: return("LS_PERS");
- case FT_LS_MBOX: return("LS_MBOX");
- case FT_LS_HOST: return("LS_HOST");
- ***************
- *** 331,336 ****
- --- 341,349 ----
- case FT_ADDTOSEQ: return("ADDTOSEQ");
- #endif
- case FT_SAVESTR: return("SAVESTR");
- + #ifdef FT_PAUSE
- + case FT_PAUSE: return ("PAUSE");
- + #endif
- case FT_DONE: return("DONE");
- case FT_NOP: return("NOP");
- case FT_GOTO: return("GOTO");
- *** ../mh-6.7-dist/uip/mshcmds.c Wed Jan 29 17:00:24 1992
- --- uip/mshcmds.c Thu Jan 23 14:58:19 1992
- ***************
- *** 1,6 ****
- /* mshcmds.c - command handlers in msh */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: mshcmds.c,v 1.6 91/01/14 16:48:39 mh Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* mshcmds.c - command handlers in msh */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: mshcmds.c,v 1.7 1992/01/23 22:58:03 jromine Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 2086,2092 ****
- else {
- zp = msh_ready (msgnum, 0);
- switch (state = scan (zp, msgnum, 0, nfs, width,
- ! msgnum == mp -> curmsg, headersw,
- fmsh ? 0L : (long) (Msgs[msgnum].m_stop - Msgs[msgnum].m_start),
- 1)) {
- case SCNMSG:
- --- 2086,2093 ----
- else {
- zp = msh_ready (msgnum, 0);
- switch (state = scan (zp, msgnum, 0, nfs, width,
- ! msgnum == mp -> curmsg,
- ! headersw ? (fmsh ? fmsh : mp -> foldpath) : (char *)0,
- fmsh ? 0L : (long) (Msgs[msgnum].m_stop - Msgs[msgnum].m_start),
- 1)) {
- case SCNMSG:
- *** ../mh-6.7-dist/uip/post.c Fri Dec 14 13:26:08 1990
- --- uip/post.c Thu Jan 30 14:40:01 1992
- ***************
- *** 1,6 ****
- /* post.c - enter messages into the transport system */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: post.c,v 2.8 90/04/05 15:35:20 sources Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* post.c - enter messages into the transport system */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: post.c,v 2.11 1992/01/30 22:39:58 jromine Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 125,133 ****
- #define SNOOPSW 29
- "snoop", -5,
-
- - #define FILLSW 30
- - "fill-in file", -7,
- -
- NULL, NULL
- };
-
- --- 125,130 ----
- ***************
- *** 234,240 ****
- #define RESENT 1
- static int msgstate = NORMAL;
-
- ! static long clock = 0L; /* the time we started (more or less) */
-
- static TYPESIG (*hstat) (), (*istat) (), (*qstat) (), (*tstat) ();
-
- --- 231,237 ----
- #define RESENT 1
- static int msgstate = NORMAL;
-
- ! static long tclock = 0L; /* the time we started (more or less) */
-
- static TYPESIG (*hstat) (), (*istat) (), (*qstat) (), (*tstat) ();
-
- ***************
- *** 292,303 ****
- static int encryptsw = 0; /* encrypt it */
-
-
- - #ifdef WP
- - extern int do_wp; /* fill-in white pages queries */
- - #endif
- - static char *fill_in = NULLCP;
- -
- -
- long lseek (), time ();
-
- static putfmt(), start_headers(), finish_headers(), putgrp(), pl();
- --- 289,294 ----
- ***************
- *** 510,522 ****
- snoop++;
- continue;
- #endif SENDMTS
- -
- - case FILLSW:
- - #ifdef WP
- - if (!(fill_in = *argp++) || *fill_in == '-')
- - adios (NULLCP, "missing argument to %s", argp[-2]);
- - #endif
- - continue;
- }
- if (msg)
- adios (NULLCP, "only one message at a time!");
- --- 501,506 ----
- ***************
- *** 525,533 ****
- }
-
- (void) alias (AliasFile);
- - #ifdef WP
- - do_wp++;
- - #endif
-
- /* */
-
- --- 509,514 ----
- ***************
- *** 568,574 ****
- else
- #endif MHMTS
- if (whomsw) {
- ! if ((out = fopen (fill_in ? fill_in : "/dev/null", "w")) == NULL)
- adios ("/dev/null", "unable to open");
- }
- else {
- --- 549,555 ----
- else
- #endif MHMTS
- if (whomsw) {
- ! if ((out = fopen ("/dev/null", "w")) == NULL)
- adios ("/dev/null", "unable to open");
- }
- else {
- ***************
- *** 609,615 ****
- case BODY:
- case BODYEOF:
- finish_headers (out);
- ! if (whomsw && !fill_in)
- break;
- fprintf (out, "\n%s", buf);
- while (state == BODY) {
- --- 590,596 ----
- case BODY:
- case BODYEOF:
- finish_headers (out);
- ! if (whomsw)
- break;
- fprintf (out, "\n%s", buf);
- while (state == BODY) {
- ***************
- *** 733,750 ****
- }
-
- hdr = &hdrtab[i];
- ! if (hdr -> flags & HIGN) {
- ! if (fill_in)
- ! fprintf (out, "%s: %s", name, str);
- return;
- - }
- if (hdr -> flags & HBAD) {
- ! if (fill_in)
- ! fprintf (out, "%s: %s", name, str);
- ! else {
- ! advise (NULLCP, "illegal header line -- %s:", name);
- ! badmsg++;
- ! }
- return;
- }
- msgflags |= (hdr -> set & ~(MVIS | MINV));
- --- 714,724 ----
- }
-
- hdr = &hdrtab[i];
- ! if (hdr -> flags & HIGN)
- return;
- if (hdr -> flags & HBAD) {
- ! advise (NULLCP, "illegal header line -- %s:", name);
- ! badmsg++;
- return;
- }
- msgflags |= (hdr -> set & ~(MVIS | MINV));
- ***************
- *** 752,762 ****
- if (hdr -> flags & HSUB)
- subject = subject ? add (str, add ("\t", subject)) : getcpy (str);
- if (hdr -> flags & HFCC) {
- - if (fill_in) {
- - fprintf (out, "%s: %s", name, str);
- - return;
- - }
- -
- if (cp = rindex (str, '\n'))
- *cp = NULL;
- for (cp = pp = str; cp = index (pp, ','); pp = cp) {
- --- 726,731 ----
- ***************
- *** 805,812 ****
-
- nameoutput = linepos = 0;
- (void) sprintf (namep, "%s%s",
- ! !fill_in && (hdr -> flags & HMNG) ? "Original-" : "",
- ! name);
-
- for (grp = 0, mp = tmpaddrs.m_next; mp; mp = np)
- if (mp -> m_nohost) { /* also used to test (hdr -> flags & HTRY) */
- --- 774,780 ----
-
- nameoutput = linepos = 0;
- (void) sprintf (namep, "%s%s",
- ! (hdr -> flags & HMNG) ? "Original-" : "", name);
-
- for (grp = 0, mp = tmpaddrs.m_next; mp; mp = np)
- if (mp -> m_nohost) { /* also used to test (hdr -> flags & HTRY) */
- ***************
- *** 822,832 ****
- }
- if (hdr -> flags & HBCC)
- mp -> m_bcc++;
- ! if (mp -> m_ingrp = np -> m_ingrp)
- grp++;
- #ifdef MHMTS
- mp -> m_aka = getcpy (np -> m_mbox);
- #endif MHMTS
- if (putadr (namep, qp, mp, out, hdr -> flags))
- msgflags |= (hdr -> set & (MVIS | MINV));
- else
- --- 790,802 ----
- }
- if (hdr -> flags & HBCC)
- mp -> m_bcc++;
- ! if (mp -> m_ingrp)
- grp++;
- #ifdef MHMTS
- mp -> m_aka = getcpy (np -> m_mbox);
- #endif MHMTS
- + if (mp -> m_gname)
- + putgrp (namep, mp -> m_gname, out, hdr -> flags);
- if (putadr (namep, qp, mp, out, hdr -> flags))
- msgflags |= (hdr -> set & (MVIS | MINV));
- else
- ***************
- *** 857,867 ****
- advise (NULLCP, "%s: field does not allow groups", name);
- badmsg++;
- }
- ! if (linepos) {
- ! if (fill_in && grp > 0)
- ! (void) putc (';', out);
- (void) putc ('\n', out);
- - }
- }
-
- /* */
- --- 827,834 ----
- advise (NULLCP, "%s: field does not allow groups", name);
- badmsg++;
- }
- ! if (linepos)
- (void) putc ('\n', out);
- }
-
- /* */
- ***************
- *** 874,880 ****
-
- myuid = getuid ();
- mygid = getgid ();
- ! (void) time (&clock);
-
- (void) strcpy (from, adrsprintf (NULLCP, NULLCP));
-
- --- 841,847 ----
-
- myuid = getuid ();
- mygid = getgid ();
- ! (void) time (&tclock);
-
- (void) strcpy (from, adrsprintf (NULLCP, NULLCP));
-
- ***************
- *** 915,924 ****
- if (whomsw)
- break;
-
- ! fprintf (out, "Date: %s\n", dtime (&clock));
- if (msgid)
- fprintf (out, "Message-ID: <%d.%ld@%s>\n",
- ! getpid (), clock, LocalName ());
- if (msgflags & MFRM)
- fprintf (out, "Sender: %s\n", from);
- else
- --- 882,891 ----
- if (whomsw)
- break;
-
- ! fprintf (out, "Date: %s\n", dtime (&tclock));
- if (msgid)
- fprintf (out, "Message-ID: <%d.%ld@%s>\n",
- ! getpid (), tclock, LocalName ());
- if (msgflags & MFRM)
- fprintf (out, "Sender: %s\n", from);
- else
- ***************
- *** 943,952 ****
- fprintf (out, "Sender: %s\n", from);
- #endif MMDFI
-
- ! fprintf (out, "Resent-Date: %s\n", dtime (&clock));
- if (msgid)
- fprintf (out, "Resent-Message-ID: <%d.%ld@%s>\n",
- ! getpid (), clock, LocalName ());
- if (msgflags & MRFM)
- fprintf (out, "Resent-Sender: %s\n", from);
- else
- --- 910,919 ----
- fprintf (out, "Sender: %s\n", from);
- #endif MMDFI
-
- ! fprintf (out, "Resent-Date: %s\n", dtime (&tclock));
- if (msgid)
- fprintf (out, "Resent-Message-ID: <%d.%ld@%s>\n",
- ! getpid (), tclock, LocalName ());
- if (msgflags & MRFM)
- fprintf (out, "Resent-Sender: %s\n", from);
- else
- ***************
- *** 992,998 ****
-
- if (mp -> m_mbox == NULL || ((flags & HTRY) && !insert (mp)))
- return 0;
- ! if (!fill_in && ((flags & (HBCC|HDCC)) || mp -> m_ingrp))
- return 1;
-
- if (!nameoutput) {
- --- 959,965 ----
-
- if (mp -> m_mbox == NULL || ((flags & HTRY) && !insert (mp)))
- return 0;
- ! if ((flags & (HBCC|HDCC)) || mp -> m_ingrp)
- return 1;
-
- if (!nameoutput) {
- ***************
- *** 1003,1009 ****
- if (*aka && mp -> m_type != UUCPHOST && !mp -> m_pers)
- mp -> m_pers = getcpy (aka);
- if (format) {
- ! if (mp -> m_gname && !fill_in)
- (void) sprintf (cp = buffer, "%s;", mp -> m_gname);
- else
- cp = adrformat (mp);
- --- 970,976 ----
- if (*aka && mp -> m_type != UUCPHOST && !mp -> m_pers)
- mp -> m_pers = getcpy (aka);
- if (format) {
- ! if (mp -> m_gname)
- (void) sprintf (cp = buffer, "%s;", mp -> m_gname);
- else
- cp = adrformat (mp);
- ***************
- *** 1037,1053 ****
- int len;
- char *cp;
-
- ! if (!fill_in && (flags & HBCC))
- return;
-
- if (!nameoutput) {
- fprintf (out, "%s: ", name);
- linepos += (nameoutput = strlen (name) + 2);
- - if (fill_in)
- - linepos -= strlen (group);
- }
-
- ! cp = fill_in ? group : concat (group, ";", NULLCP);
- len = strlen (cp);
-
- if (linepos > nameoutput)
- --- 1004,1018 ----
- int len;
- char *cp;
-
- ! if (flags & HBCC)
- return;
-
- if (!nameoutput) {
- fprintf (out, "%s: ", name);
- linepos += (nameoutput = strlen (name) + 2);
- }
-
- ! cp = concat (group, ";", NULLCP);
- len = strlen (cp);
-
- if (linepos > nameoutput)
- ***************
- *** 1190,1199 ****
- adios (bccfil, "unable to create");
- (void) chmod (bccfil, 0600);
-
- ! fprintf (out, "Date: %s\n", dtime (&clock));
- if (msgid)
- fprintf (out, "Message-ID: <%d.%ld@%s>\n",
- ! getpid (), clock, LocalName ());
- fprintf (out, "From: %s\n", signature);
- if (subject)
- fprintf (out, "Subject: %s", subject);
- --- 1155,1164 ----
- adios (bccfil, "unable to create");
- (void) chmod (bccfil, 0600);
-
- ! fprintf (out, "Date: %s\n", dtime (&tclock));
- if (msgid)
- fprintf (out, "Message-ID: <%d.%ld@%s>\n",
- ! getpid (), tclock, LocalName ());
- fprintf (out, "From: %s\n", signature);
- if (subject)
- fprintf (out, "Subject: %s", subject);
- ***************
- *** 2513,2519 ****
- pstat = signal (SIGPIPE, SIG_IGN);
- if (from) { /* no mail filtering, so... */
- (void) sprintf (buffer, "From %s %.24s remote from %s\n",
- ! getusr (), ctime (&clock), SystemName ());
- i = strlen (buffer);
- if (fwrite (buffer, sizeof *buffer, i, fp) != i)
- goto oops;
- --- 2478,2484 ----
- pstat = signal (SIGPIPE, SIG_IGN);
- if (from) { /* no mail filtering, so... */
- (void) sprintf (buffer, "From %s %.24s remote from %s\n",
- ! getusr (), ctime (&tclock), SystemName ());
- i = strlen (buffer);
- if (fwrite (buffer, sizeof *buffer, i, fp) != i)
- goto oops;
- ***************
- *** 2599,2605 ****
- register struct mailname *lp;
-
- naddrs = 0;
- ! if (nm_init (getusr (), &clock) == NOTOK) {
- for (lp = netaddrs.m_next; lp; lp = lp -> m_next)
- if (lp -> m_bcc ? bccque : !bccque)
- fprintf (stderr, " %s at %s: unable to get queue file\n",
- --- 2564,2570 ----
- register struct mailname *lp;
-
- naddrs = 0;
- ! if (nm_init (getusr (), &tclock) == NOTOK) {
- for (lp = netaddrs.m_next; lp; lp = lp -> m_next)
- if (lp -> m_bcc ? bccque : !bccque)
- fprintf (stderr, " %s at %s: unable to get queue file\n",
- *** ../mh-6.7-dist/uip/scan.c Fri Dec 14 13:26:10 1990
- --- uip/scan.c Thu Jan 23 15:06:54 1992
- ***************
- *** 1,6 ****
- /* scan.c - display a one-line "scan" listing */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: scan.c,v 1.8 90/04/05 14:59:58 sources Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* scan.c - display a one-line "scan" listing */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: scan.c,v 1.9 1992/01/23 23:06:45 jromine Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 204,210 ****
-
- m_unknown (in);
- for (msgnum = 1; ; ++msgnum) {
- ! state = scan (in, msgnum, -1, nfs, width, 0, hdrflag, 0L, 1);
- if (state != SCNMSG && state != SCNENC)
- break;
- }
- --- 204,211 ----
-
- m_unknown (in);
- for (msgnum = 1; ; ++msgnum) {
- ! state = scan (in, msgnum, -1, nfs, width, 0,
- ! hdrflag ? file : (char *)0, 0L, 1);
- if (state != SCNMSG && state != SCNENC)
- break;
- }
- ***************
- *** 234,247 ****
- continue;
- }
-
- if (hdrflag) {
- (void) time (&clock);
- printf ("Folder %-32s%s\n\n", folder,
- dasctime (dlocaltime (&clock), TW_NULL));
- }
- switch (state = scan (in, msgnum, 0, nfs, width,
- msgnum == mp -> curmsg,
- ! hdrflag, 0L, 1)) {
- case SCNMSG:
- case SCNENC:
- case SCNERR:
- --- 235,250 ----
- continue;
- }
-
- + #ifndef JLR
- if (hdrflag) {
- (void) time (&clock);
- printf ("Folder %-32s%s\n\n", folder,
- dasctime (dlocaltime (&clock), TW_NULL));
- }
- + #endif /* JLR */
- switch (state = scan (in, msgnum, 0, nfs, width,
- msgnum == mp -> curmsg,
- ! hdrflag ? folder : (char *)0, 0L, 1)) {
- case SCNMSG:
- case SCNENC:
- case SCNERR:
- *** ../mh-6.7-dist/uip/scansbr.c Fri Dec 14 13:26:10 1990
- --- uip/scansbr.c Wed Jan 29 16:11:38 1992
- ***************
- *** 1,6 ****
- /* scansbr.c - routines to help scan along... */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: scansbr.c,v 1.5 90/04/05 14:57:59 sources Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* scansbr.c - routines to help scan along... */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: scansbr.c,v 1.7 1992/01/30 00:11:23 jromine Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 15,21 ****
-
-
- #define MAXSCANL 256 /* longest possible scan line */
- ! #define SBUFSIZ 256 /* buffer size for content part of header
- * fields. We want this to be large
- * enough so that we don't do a lot of
- * extra FLDPLUS calls on m_getfld but
- --- 15,21 ----
-
-
- #define MAXSCANL 256 /* longest possible scan line */
- ! #define SBUFSIZ 512 /* buffer size for content part of header
- * fields. We want this to be large
- * enough so that we don't do a lot of
- * extra FLDPLUS calls on m_getfld but
- ***************
- *** 28,33 ****
- --- 28,36 ----
- /* */
-
- static struct format *fmt;
- + #ifdef JLR
- + static struct format *fmt_top;
- + #endif /* JLR */
-
- static struct comp *datecomp; /* pntr to "date" comp */
- static struct comp *bodycomp; /* pntr to "body" pseudo-comp
- ***************
- *** 53,65 ****
-
- /* ARGSUSED */
-
- ! int scan (inb, innum, outnum, nfs, width, curflg, header, size, noisy)
- ! char *nfs;
- int innum,
- outnum,
- width,
- curflg,
- - header,
- noisy;
- long size;
- register FILE *inb;
- --- 56,68 ----
-
- /* ARGSUSED */
-
- ! int scan (inb, innum, outnum, nfs, width, curflg, folder, size, noisy)
- ! char *nfs,
- ! *folder;
- int innum,
- outnum,
- width,
- curflg,
- noisy;
- long size;
- register FILE *inb;
- ***************
- *** 92,99 ****
- --- 95,108 ----
- (void) umask( ~ m_gmprot() );
-
- ncomps = fmt_compile (nfs, &fmt) + 1;
- + #ifdef JLR
- + fmt_top = fmt;
- + #endif JLR
- FINDCOMP(bodycomp, "body");
- FINDCOMP(datecomp, "date");
- + FINDCOMP(cptr, "folder");
- + if (cptr && folder)
- + cptr->c_text = folder;
- FINDCOMP(cptr, "encrypted");
- if (!cptr)
- if (cptr = (struct comp *) calloc (1, sizeof *cptr)) {
- ***************
- *** 285,291 ****
- --- 294,306 ----
- }
- }
- }
- + #ifndef JLR
- (void) fmtscan (fmt, scanl, slwidth, dat);
- + #else JLR
- + fmt = fmtscan (fmt, scanl, slwidth, dat);
- + if (!fmt)
- + fmt = fmt_top; /* reset for old format files */
- + #endif JLR
-
- if (bodycomp)
- bodycomp->c_text = saved_c_text;
- *** /dev/null Thu Jan 30 13:49:21 1992
- --- uip/sendmail.c Fri Jan 24 14:36:30 1992
- ***************
- *** 0 ****
- --- 1,556 ----
- + /* sendmail.c - */
- + #ifndef lint
- + static char Id[] = "$Id: sendmail.c,v 1.5 1992/01/24 22:36:27 jromine Exp $";
- + #endif
- + /*
- + ** A Sendmail fake.
- + *
- + * Contributed by Scott Erickson <erickson@ics.uci.edu>
- + */
- + /* Include files glommed from post.c */
- +
- + #include "../h/mh.h"
- + #include "../h/addrsbr.h"
- + #include "../h/aliasbr.h"
- + #include "../h/dropsbr.h"
- + #include "../zotnet/tws.h"
- + #ifndef MMDFMTS
- + #include <ctype.h>
- + #include <errno.h>
- + #include <setjmp.h>
- + #include <stdio.h>
- + #include <sys/types.h>
- + #else MMDFMTS
- + #include "../mts/mmdf/util.h"
- + #include "../mts/mmdf/mmdf.h"
- + #endif MMDFMTS
- + #include "../zotnet/mts.h"
- + #ifdef MHMTS
- + #ifndef V7
- + #include <sys/ioctl.h>
- + #endif not V7
- + #include <sys/stat.h>
- + #endif MHMTS
- + #ifdef SENDMTS
- + #include "../mts/sendmail/smail.h"
- + #undef MF
- + #endif SENDMTS
- + #include <signal.h>
- +
- + char *SMTPSRVR = "smtpsrvr";
- +
- + char msgfname[50]; /* name of message file */
- + char *FullName; /* sender's full name */
- + char *from; /* sender's mail address */
- + int verbose;
- + int verify;
- + int extract;
- + int dodist;
- + int rewritefrom;
- + int status; /* return value from procedures */
- + static int childid; /* id from smtp child process */
- + int die();
- + long lclock = 0L; /* the time we started (more or less) */
- +
- +
- + FILE *fp; /* file pointer for message file */
- + extern FILE *tmpfile();
- +
- + static struct swit switches[] = {
- + #define ARPASW 0
- + "ba", -2,
- + #define DAEMONSW 1
- + "bd", -2,
- + #define INITALSW 2
- + "bi", -2,
- + #define DELIVSW 3
- + "bm", -2,
- + #define QSUMSW 4
- + "bp", -2,
- + #define SMTPSW 5
- + "bs", -2,
- + #define ADRTSTSW 6
- + "bt", -2,
- + #define ADRVRFSW 7
- + "bv", -2,
- + #define CFGFRZSW 8
- + "bz", -2,
- + #define ALTCFGSW 9
- + "C", -1,
- + #define DBGVALSW 10
- + "d", -1,
- + #define FULLSW 11
- + "F", -1,
- + #define FROMSW 12
- + "f", -1,
- + #define HOPCNTSW 13
- + "h", -1,
- + #define MSGIDSW 14
- + "M", -1,
- + #define NOALISW 15
- + "n", -1,
- + #define QTIMESW 16
- + "q", -1,
- + #define OBSFRMSW 17
- + "r", -1,
- + #define EXTHDRSW 18
- + "t", -1,
- + #define VERBSW 19
- + "v", -1,
- + #define ALTALISW 20
- + "oA", -2,
- + #define NOCONSW 21
- + "oc", -2,
- + #define DLVMODSW 22
- + "od", -2,
- + #define NEWALISW 23
- + "oD", -2,
- + #define ERRMODSW 24
- + "oe", -2,
- + #define TMPMODSW 25
- + "oF", -2,
- + #define UFROMSW 26
- + "of", -2,
- + #define GIDSW 27
- + "og", -2,
- + #define HLPFILSW 28
- + "oH", -2,
- + #define NODOTSW 29
- + "oi", -2,
- + #define LOGLEVSW 30
- + "oL", -2,
- + #define MEOKSW 31
- + "om", -2,
- + #define OLDHDRSW 32
- + "oo", -2,
- + #define QDIRSW 33
- + "oQ", -2,
- + #define RTMOUTSW 34
- + "or", -2,
- + #define SFILESW 35
- + "oS", -2,
- + #define QMSGSW 36
- + "os", -2,
- + #define MTMOUTSW 37
- + "oT", -2,
- + #define TZSW 38
- + "ot", -2,
- + #define UIDSW 39
- + "ou", -2,
- +
- + NULL, NULL
- + };
- +
- + /*ARGSUSED*/
- + main(argc, argv) int argc; char **argv; {
- + register char *cp;
- + char **argp = argv + 1;
- +
- + invo_name = r1bindex (argv[0], '/');
- + mts_init(argv[0]);
- +
- + if (signal(SIGINT, SIG_IGN) != SIG_IGN)
- + (void) signal(SIGINT, die);
- + if (signal(SIGHUP, SIG_IGN) != SIG_IGN)
- + (void) signal(SIGHUP, die);
- + (void) signal(SIGTERM, die);
- + (void) signal(SIGPIPE, die);
- +
- + FullName = getfullname();
- + from = adrsprintf(NULLCP,NULLCP);
- + (void) time (&lclock);
- +
- + while ( (cp = *argp) && *cp == '-' ) {
- + argp++;
- + switch (smatch ( ++cp, switches )) {
- + case ARPASW: /* smtp on stdin */
- + case SMTPSW: /* smtp on stdin */
- + smtp();
- + exit(98); /* should never happen */
- +
- + case DELIVSW: /* just send mail */
- + continue;
- +
- + case ADRVRFSW: /* verify mode */
- + verify = 1;
- + continue;
- +
- + case FROMSW: /* from address */
- + case OBSFRMSW: /* obsolete -f flag */
- + if (*(++cp) == '\0' &&
- + (!(cp = *argp++) || *cp == '-'))
- + adios (NULLCP, "missing argument to %s", argp[-2]);
- + /* At this point, cp points to the from name */
- + if (rewritefrom) {
- + adios (NULLCP, "More than one \"from\" person");
- + continue;
- + }
- + from = cp;
- + rewritefrom = 1;
- + continue;
- +
- + case EXTHDRSW: /* read recipients from message */
- + extract = 1;
- + continue;
- +
- + case VERBSW: /* give blow-by-blow description */
- + verbose = 1;
- + continue;
- +
- + /* These switches have no args. */
- + case QMSGSW: /* always queue the message */
- + case DAEMONSW: /* run as a daemon & wait for SMTP */
- + case INITALSW: /* initialize the alias database */
- + case QSUMSW: /* print summary of mail queue */
- + case ADRTSTSW: /* test the addresses to debug config file */
- + case CFGFRZSW: /* create the configuration freeze file */
- + case NOALISW: /* do not do aliasing */
- + case NOCONSW: /* do not initiate immediate host connection */
- + case NEWALISW: /* run newaliases to rebuild db */
- + case UFROMSW: /* save UNIX-style From lines at front of msg*/
- + case NODOTSW: /* dots on line are not msg terminators */
- + case MEOKSW: /* ok to send to me if I'm in an alias */
- + case OLDHDRSW: /* msg may have old-style headers */
- + continue;
- +
- + /* These switches have string args. */
- + case ALTALISW: /* use alternate alias file */
- + case ALTCFGSW: /* use alternate configuration file */
- + case DBGVALSW: /* set the debug value */
- + case FULLSW: /* set full name */
- + case MSGIDSW: /* try to deliver queued msg with msg-id */
- + case QTIMESW: /* interval between queue passes */
- + case DLVMODSW: /* set the delivery mode */
- + case ERRMODSW: /* set the error mode */
- + case TMPMODSW: /* the mode to use when creating tmp files */
- + case HLPFILSW: /* the SMTP help file */
- + case QDIRSW: /* directory into which to queue messages */
- + case RTMOUTSW: /* timeout on reads */
- + case SFILESW: /* save statistics in this file */
- + case MTMOUTSW: /* timeout on messages in the queue */
- + case TZSW: /* set the name of the timezone */
- + if (*(++cp) == '\0' &&
- + (!(cp = *argp++) || *cp == '-'))
- + adios (NULLCP, "missing argument to %s", argp[-2]);
- + /* At this point, cp points to the argument */
- + continue; /* Ignore */
- +
- + /* These switches have numeric args. */
- + case HOPCNTSW: /* hop count */
- + case GIDSW: /* gid when calling mailers */
- + case LOGLEVSW: /* the log level */
- + case UIDSW: /* uid when calling mailers */
- + if (*(++cp) == '\0' &&
- + (!(cp = *argp++) || *cp == '-'))
- + adios (NULLCP, "missing argument to %s", argp[-2]);
- + /* At this point, cp points to the numeric arg */
- + if (!isdigit(*cp))
- + adios (NULLCP, "non-numeric argument to %s", argp[-2]);
- + continue; /* Ignore */
- + }
- + }
- +
- + (void) setuid(getuid());
- +
- + if (verify && extract)
- + adios (NULLCP, "mode not supported on header components");
- +
- + if (*argp == NULL && !extract)
- + adios (NULLCP, "usage: /usr/lib/sendmail [flags] addr...");
- +
- + strcpy (msgfname, "/tmp/sendmhXXXXXX");
- + if ( mktemp(msgfname) == NULL )
- + adios (msgfname, "can't create msg file ");
- +
- + if ( (fp = fopen(msgfname,"w") ) == NULL ) {
- + adios (msgfname, "error opening ");
- + }
- +
- + doheader(argp);
- + if ( verify ) {
- + (void) fclose(fp);
- + status = doverify();
- + removemsg();
- + exit ( status ) ;
- + }
- + dobody();
- + status = sendfile();
- + removemsg();
- + exit ( status );
- + }
- +
- + static removemsg() {
- + puts(msgfname);
- + /*
- + if ( unlink(msgfname) != 0 )
- + perror("unlink");
- + */
- + }
- +
- + doheader(argp) char **argp; {
- + char line[BUFSIZ];
- + int gotdate, gotfrom, gotsender, gotto;
- +
- + /* if we're not extracting the headers from the message, then we
- + * need to check to see if we need to do a "send" or a "dist".
- + */
- +
- + if ( !extract ) {
- + /* If we're doing a verify, just create a "To:" header. */
- + if ( ! verify ) {
- + gotdate = gotfrom = gotto = gotsender = dodist = 0;
- + while (fgets (line, BUFSIZ, stdin) != NULL) {
- + if (line[0] == '\n') /* end of header */
- + break;
- + if ( !isheader(line) )
- + break;
- +
- + /* if any of the following headers are present, then we
- + * want to do a dist.
- + */
- + if ( !gotdate && uprf(line, "date") )
- + gotdate = dodist = 1;
- +
- + else if ( !gotto && (uprf(line, "to") || uprf(line, "cc")) )
- + gotto = dodist = 1;
- +
- + else if ( uprf(line, "message-id") )
- + dodist = 1;
- +
- + else if ( !gotsender && uprf(line, "sender") )
- + gotsender = dodist = 1;
- +
- + else if ( uprf ( line, "resent-" ) ) {
- + dodist = 1;
- + (void) fputs("Prev-", fp);
- + }
- +
- + /* See if we are re-writing the from line */
- + if ( uprf(line, "from") ) {
- + gotfrom = 1;
- + if ( rewritefrom )
- + dofrom();
- + else
- + (void) fputs(line,fp);
- + }
- + else
- + (void) fputs(line,fp);
- + }
- + }
- + /* Now, generate a "to" line. The first line is easy.
- + * Write the rest of the lines with a newline/tab so that we
- + * don't accidentally write a line that's too long to be parsed
- + * by post.
- + */
- + (void) fprintf (fp, "%sTo: %s", (dodist ? "Resent-" : "" ), *argp++);
- + while ( *argp )
- + (void) fprintf ( fp, ",\n\t%s", *argp++ );
- + (void) fputs("\n",fp);
- +
- + /* If we're doing a dist, we must have a "Date:" and "From:" field.
- + */
- + if ( dodist ) {
- + if ( !gotdate )
- + (void) fprintf (fp, "Date: %s\n", dtime (&lclock));
- + if ( !gotfrom )
- + dofrom();
- + }
- + #ifdef MMDFI /* sigh */
- + if ( !gotsender )
- + (void) fprintf (fp, "Sender: %s\n", from);
- + #endif MMDFI
- + } else { /* we're verifying, so just pass everything through */
- + while (fgets (line, BUFSIZ, stdin) != NULL) {
- + if (line[0] == '\n') /* end of header */
- + break;
- +
- + if ( rewritefrom && uprf(line, "from"))
- + dofrom();
- + else
- + (void) fputs(line,fp);
- + }
- + }
- + /* At this point, line is either a newline (end of header) or the
- + * first line of the body (poorly formatted message). If line
- + * contains a line of body from a poorly formatted message, then
- + * print a newline to separate the header correctly, then print
- + * the body line.
- + */
- + if ( line[0] != '\n' ) /* i.e. a "body" line */
- + (void) fputc('\n', fp);
- + (void) fputs(line, fp);
- + }
- +
- + static isheader(s) char *s; {
- + register char *cp;
- +
- + /* If the first character is a space, assume a continuation of a header */
- + if ( isspace(*s) )
- + return 1;
- +
- + /* If there's no ':', it's not a header */
- + if ( (cp = index(s,':')) == NULL )
- + return 0;
- +
- + /* If there's a space between BOL and ':', it's not a header */
- + while ( s < cp ) {
- + if ( isspace(*s) )
- + return 0;
- + s++;
- + }
- + return 1;
- + }
- +
- + /* This procedure does the verify and returns the status */
- + doverify() {
- + char *command, buf[BUFSIZ], *bp;
- + FILE *verfp, *popen();
- +
- + /* set up the command line for post */
- + if ( (command = (char *)malloc((strlen(postproc) +
- + strlen(" -whom -check -verbose ") +
- + strlen(msgfname) + 1 )*sizeof(char)))
- + == NULL ) {
- + perror("malloc");
- + return NOTOK;
- + }
- +
- + (void) strcpy(command,postproc);
- + (void) strcat(command," -whom -check ");
- + if ( verbose )
- + (void) strcat(command, "-verbose " );
- + (void) strcat(command, msgfname);
- +
- + /* open up the pipe */
- + if ( (verfp = popen(command,"r")) == NULL )
- + return NOTOK;
- +
- + while ( fgets(buf, BUFSIZ, verfp) != NULL )
- + /* sendmail returns:
- + * address: result
- + * so we need to strip the extra post headers.
- + */
- + if ( verbose ) {
- + bp = buf;
- + while (isspace(*bp))
- + bp++;
- + if ( *bp != '-' )
- + (void) fputs(bp,stdout);
- + }
- +
- + /* return the error status of post */
- + return( pclose(verfp) >> 8 );
- + }
- +
- + static sendfile() {
- + char *command, buf[BUFSIZ];
- + FILE *verfp, *popen();
- +
- + /* set up the command line for post */
- + if ( (command = (char *)malloc((strlen(postproc) +
- + strlen(" -dist -verbose ") +
- + strlen(msgfname) + 1 )*sizeof(char)))
- + == NULL ) {
- + perror("malloc");
- + return NOTOK;
- + }
- +
- + (void) strcpy(command,postproc);
- + (void) strcat(command," ");
- + if ( verbose )
- + (void) strcat(command, "-verbose " );
- + if ( dodist )
- + (void) strcat(command, "-dist " );
- + (void) strcat(command, msgfname);
- +
- + /* open up the pipe */
- + if ( (verfp = popen(command,"r")) == NULL )
- + return NOTOK;
- +
- + while ( fgets(buf, BUFSIZ, verfp) != NULL )
- + (void) fputs(buf,stdout);
- +
- + /* return the error status of post */
- + return( pclose(verfp) >> 8 );
- + }
- +
- + dofrom() {
- + char line[128];
- +
- + if (FullName)
- + (void) sprintf(line, "From: %s <%s>\n", FullName, from);
- + else
- + (void) sprintf(line, "From: %s\n", from);
- + (void) fputs(line, fp);
- + }
- +
- + dobody() {
- + register int i;
- + char buffer[BUFSIZ];
- +
- + while (!feof (stdin) && !ferror (stdin) &&
- + (i = fread (buffer, sizeof (char), sizeof (buffer), stdin)) > 0)
- + if (fwrite (buffer, sizeof (char), i , fp) != i )
- + adios (NULLCP, "Problem writing body");
- +
- + if (ferror (stdin))
- + adios (NULLCP, "Problem reading body");
- +
- + if ( fclose(fp) != 0 )
- + adios (NULLCP, "problem ending submission");
- + }
- +
- + int silentdie();
- +
- + smtp()
- + {
- + int sd,len;
- + char buf[BUFSIZ], response[BUFSIZ];
- +
- + if ((sd = client(NULLCP, "tcp", "smtp", 0, response)) == NOTOK)
- + adios (NULLCP, "cannot open smtp client process");
- +
- + (void) signal(SIGCHLD, silentdie);
- +
- + switch ((childid = fork())) {
- + case NOTOK:
- + adios (NULLCP, "unable to fork smtp process");
- +
- + case OK: /* i.e. child */
- + (void) dup2(sd,0);
- + break;
- +
- + default: /* i.e. parent */
- + (void) dup2(sd,1);
- + break;
- + }
- + while ( (len = read(0, buf, BUFSIZ)) > 0)
- + (void) write (1, buf, len);
- +
- + if (childid)
- + (void) kill(childid, SIGHUP);
- +
- + exit(9);
- + }
- +
- + /* ARGSUSED */
- + die(sig)
- + int sig;
- + {
- + if (fp) {
- + (void) fclose(fp);
- + (void) unlink(msgfname);
- + }
- + if (sig != SIGHUP)
- + (void) fprintf(stderr, "sendmail: dying from signal %d\n", sig);
- + exit(99);
- + }
- +
- + /* ARGSUSED */
- +
- + silentdie(sig)
- + int sig;
- + {
- + pidwait (childid, OK);
- + exit(0);
- + }
- *** ../mh-6.7-dist/uip/slocal.c Wed Jan 29 17:00:26 1992
- --- uip/slocal.c Wed Jan 29 16:06:08 1992
- ***************
- *** 1,6 ****
- /* slocal.c - MH style mailer to write to a local user's mailbox */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: slocal.c,v 1.9 91/01/10 14:39:00 mh Exp $";
- #endif lint
-
- /* This program implements mail delivery in the MH/MMDF style.
- --- 1,6 ----
- /* slocal.c - MH style mailer to write to a local user's mailbox */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: slocal.c,v 1.10 1992/01/30 00:06:00 jromine Exp $";
- #endif lint
-
- /* This program implements mail delivery in the MH/MMDF style.
- ***************
- *** 505,511 ****
- --- 505,515 ----
- if (!uleq (action, "file"))
- continue; /* else fall */
- case '>':
- + #ifndef RPATHS
- status = usr_file (fd, string, from); /* UUCP format? */
- + #else
- + status = usr_file (fd, string, NULLCP);
- + #endif
- break;
-
- case 'd':
- *** ../mh-6.7-dist/uip/vmh.c Fri Dec 14 13:26:13 1990
- --- uip/vmh.c Thu Jan 23 16:05:15 1992
- ***************
- *** 1,6 ****
- /* vmh.c - visual front-end to mh */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: vmh.c,v 1.6 90/04/05 15:00:17 sources Exp $";
- #endif lint
- #ifdef SYS5
- /*
- --- 1,6 ----
- /* vmh.c - visual front-end to mh */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: vmh.c,v 1.7 1992/01/24 00:05:13 jromine Exp $";
- #endif lint
- #ifdef SYS5
- /*
- ***************
- *** 24,29 ****
- --- 24,32 ----
- */
-
- #include <curses.h>
- + #ifdef ncr
- + #define _SYS_REG_H /* NCR redefines "ERR" in <sys/reg.h> */
- + #endif
- #undef OK /* tricky */
- #ifdef TERMINFO
- #include <term.h> /* variables describing terminal capabilities */
- *** ../mh-6.7-dist/uip/whatnowsbr.c Wed Jan 29 17:00:27 1992
- --- uip/whatnowsbr.c Thu Jan 30 14:40:03 1992
- ***************
- *** 1,6 ****
- /* whatnowsbr.c - the WhatNow shell */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: whatnowsbr.c,v 1.10 91/01/23 15:43:31 mh Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* whatnowsbr.c - the WhatNow shell */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: whatnowsbr.c,v 1.12 1992/01/30 22:39:58 jromine Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 335,341 ****
-
- default:
- if (status = pidwait (pid, NOTOK)) {
- ! #ifdef SUNVIBUG
- if ((cp = r1bindex (*ed, '/'))
- && strcmp (cp, "vi") == 0
- && (status & 0x00ff) == 0)
- --- 335,341 ----
-
- default:
- if (status = pidwait (pid, NOTOK)) {
- ! #ifdef ATTVIBUG
- if ((cp = r1bindex (*ed, '/'))
- && strcmp (cp, "vi") == 0
- && (status & 0x00ff) == 0)
- ***************
- *** 354,360 ****
- file);
- status = -2; /* maybe "reedit ? -2 : -1"? */
- break;
- ! #ifdef SUNVIBUG
- }
- #endif
- }
- --- 354,360 ----
- file);
- status = -2; /* maybe "reedit ? -2 : -1"? */
- break;
- ! #ifdef ATTVIBUG
- }
- #endif
- }
- ***************
- *** 786,801 ****
- int pid;
- register int vecp;
- char *vec[MAXARGS];
- - #ifdef WP
- - char *cp,
- - draft[BUFSIZ],
- - backup[BUFSIZ];
- - #endif
-
- - #ifdef WP
- - (void) strcpy (draft, m_scratch (file, invo_name));
- - #endif
- -
- m_update ();
- (void) fflush (stdout);
-
- --- 786,792 ----
- ***************
- *** 811,820 ****
- if (arg)
- while (*arg)
- vec[vecp++] = *arg++;
- - #ifdef WP
- - vec[vecp++] = "-fill-in";
- - vec[vecp++] = draft;
- - #endif
- vec[vecp] = NULL;
-
- execvp (whomproc, vec);
- --- 802,807 ----
- ***************
- *** 823,850 ****
- _exit (-1); /* NOTREACHED */
-
- default:
- - #ifndef WP
- return (pidwait (pid, NOTOK) & 0377 ? 1 : 0);
- - #else
- - if (pidwait (pid, NOTOK)) {
- - (void) unlink (draft);
- - return 1;
- - }
- break;
- - #endif
- }
- -
- - #ifdef WP
- - if (rename (file, cp = m_backup (file)) == NOTOK) {
- - advise (cp, "unable to rename %s to", file);
- - (void) unlink (draft);
- - return 1;
- - }
- - if (rename (draft, file) == NOTOK) {
- - advise (file, "unable to rename %s to ", draft);
- - return 1;
- - }
- -
- - return 0;
- - #endif
- }
- --- 810,816 ----
- *** ../mh-6.7-dist/uip/whom.c Fri Dec 14 13:26:14 1990
- --- uip/whom.c Thu Jan 30 14:40:04 1992
- ***************
- *** 1,6 ****
- /* whom.c - report who a message would go to */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: whom.c,v 1.4 90/04/05 15:00:25 sources Exp $";
- #endif lint
-
- #include "../h/mh.h"
- --- 1,6 ----
- /* whom.c - report who a message would go to */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: whom.c,v 1.5 1992/01/30 22:39:58 jromine Exp $";
- #endif lint
-
- #include "../h/mh.h"
- ***************
- *** 38,46 ****
- #define SNOOPSW 10
- "snoop", -5,
-
- - #define FILLSW 11
- - "fill-in file", -7,
- -
- NULL, NULL
- };
-
- --- 38,43 ----
- ***************
- *** 131,137 ****
- case ALIASW:
- case CLIESW:
- case SERVSW:
- - case FILLSW:
- vec[vecp++] = --cp;
- if (!(cp = *argp++) || *cp == '-')
- adios (NULLCP, "missing argument to %s", argp[-2]);
- --- 128,133 ----
- *** ../mh-6.7-dist/zotnet/bboards/getbbent.c Fri Dec 14 13:26:15 1990
- --- zotnet/bboards/getbbent.c Tue Aug 6 10:23:18 1991
- ***************
- *** 1,6 ****
- /* getbbent.c - subroutines for accessing the BBoards file */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: getbbent.c,v 1.5 90/04/09 10:11:57 sources Exp $";
- #endif lint
-
- /* LINTLIBRARY */
- --- 1,6 ----
- /* getbbent.c - subroutines for accessing the BBoards file */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: getbbent.c,v 1.5 1990/04/09 10:11:57 sources Exp jromine $";
- #endif lint
-
- /* LINTLIBRARY */
- ***************
- *** 618,624 ****
-
- char *getbberr () {
- return (BBErrors[0] ? BBErrors : NULL);
- ! };
-
- /* */
-
- --- 618,624 ----
-
- char *getbberr () {
- return (BBErrors[0] ? BBErrors : NULL);
- ! }
-
- /* */
-
- *** ../mh-6.7-dist/zotnet/mf/mf.c Fri Dec 14 13:26:16 1990
- --- zotnet/mf/mf.c Thu Jan 30 14:40:38 1992
- ***************
- *** 1,6 ****
- /* mf.c - mail filter subroutines */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: mf.c,v 1.6 90/04/05 15:04:19 sources Exp $";
- #endif lint
-
- #include "mf.h"
- --- 1,6 ----
- /* mf.c - mail filter subroutines */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: mf.c,v 1.7 1992/01/30 22:40:35 jromine Exp $";
- #endif lint
-
- #include "mf.h"
- ***************
- *** 304,312 ****
-
- #define QUOTE '\\'
-
- - #ifdef WP
- - #define LX_WP (-1)
- - #endif
- #define LX_END 0
- #define LX_ERR 1
- #define LX_ATOM 2
- --- 304,309 ----
- ***************
- *** 360,381 ****
-
- static struct adrx adrxs2;
-
- -
- - #ifdef WP
- - char *concat ();
- -
- - extern int do_wp;
- - char *wp_expand ();
- - #endif
- -
- /* */
-
- struct adrx *getadrx (addrs)
- register char *addrs;
- {
- - #ifdef WP
- - int save_lex;
- - #endif
- register char *bp;
- register struct adrx *adrxp = &adrxs2;
-
- --- 357,367 ----
- ***************
- *** 405,433 ****
- return NULL;
- }
-
- - #ifdef WP
- - bp = cp, save_lex = last_lex;
- - if (my_lex (adr) == LX_WP) {
- - register char *ep,
- - *fp;
- -
- - if (fp = wp_expand (adr, err)) {
- - *bp = NULL;
- - ep = concat (dp, fp, cp, (char *) NULL);
- - cp = ep + strlen (dp), last_lex = save_lex;
- - free (dp);
- - dp = ep;
- - free (fp);
- - }
- - else {
- - ap = bp, save_lex = last_lex;
- - goto out;
- - }
- - }
- - else
- - cp = bp, last_lex = save_lex;
- - #endif
- -
- switch (parse_address ()) {
- case DONE:
- free (dp);
- --- 391,396 ----
- ***************
- *** 452,460 ****
- break;
- }
-
- - #ifdef WP
- - out: ;
- - #endif
- if (err[0])
- for (;;) {
- switch (last_lex) {
- --- 415,420 ----
- ***************
- *** 846,866 ****
- cp = NULL;
- return (last_lex = LX_END);
- }
- -
- - #ifdef WP
- - if (do_wp && c == '<' && *cp == '<')
- - for (cp++;;)
- - switch (c = *cp++) {
- - case '>':
- - *bp = NULL;
- - cp++;
- - return (last_lex = LX_WP);
- -
- - default:
- - *bp++ = c;
- - continue;
- - }
- - #endif
-
- if (c == '(')
- for (*bp++ = c, i = 0;;)
- --- 806,811 ----
- *** ../mh-6.7-dist/conf/config/config.c Fri Dec 14 13:23:47 1990
- --- conf/config/config.c Fri Jan 24 17:10:25 1992
- ***************
- *** 1,4 ****
- --- 1,7 ----
- /* config.c - master MH configuration file */
- + #ifndef lint
- + static char ident[] = "@(#)$Id: config.c,v 1.5 1992/01/24 00:35:28 jromine Exp $";
- + #endif lint
-
- /* @(MHWARNING) */
-
- ***************
- *** 19,24 ****
- --- 22,28 ----
- #define etcpath(file) "@(MHETCPATH)/file"
- #endif
-
- + static char Config[] = "@(#)Config: @(MHCONFIGFILE)";
-
- @(MHCONFIG)
-
- *** ../mh-6.7-dist/conf/config/mts.c Fri Dec 14 13:23:48 1990
- --- conf/config/mts.c Thu Feb 14 15:18:22 1991
- ***************
- *** 1,6 ****
- /* mts.c - definitions for the mail transport system */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: mts.c,v 2.6 90/11/05 12:06:39 mh Exp $";
- #endif lint
-
- /* LINTLIBRARY */
- --- 1,6 ----
- /* mts.c - definitions for the mail transport system */
- #ifndef lint
- ! static char ident[] = "@(#)$Id: mts.c,v 2.7 91/02/14 15:17:56 mh Exp $";
- #endif lint
-
- /* LINTLIBRARY */
- ***************
- *** 477,487 ****
- return username;
- }
-
- if (MMailids) {
- - np = pw -> pw_gecos;
- - for (cp = fullname; *np && *np != '<'; *cp++ = *np++)
- - continue;
- - *cp = NULL;
- if (*np)
- np++;
- for (cp = username; *np && *np != '>'; *cp++ = *np++)
- --- 477,487 ----
- return username;
- }
-
- + np = pw -> pw_gecos;
- + for (cp = fullname; *np && *np != (MMailids ? '<' : ','); *cp++ = *np++)
- + continue;
- + *cp = NULL;
- if (MMailids) {
- if (*np)
- np++;
- for (cp = username; *np && *np != '>'; *cp++ = *np++)
- ***************
- *** 488,502 ****
- continue;
- *cp = NULL;
- }
- ! if (MMailids == 0 || *np == NULL) {
- (void) strcpy (username, pw -> pw_name);
- ! fullname[0] = NULL;
- ! }
- if ((cp = getenv ("SIGNATURE")) && *cp)
- (void) strcpy (fullname, cp);
- if (index(fullname, '.')) { /* quote any .'s */
- char tmp[BUFSIZ];
- ! sprintf (tmp, "\"%s\"", fullname);
- strcpy (fullname, tmp);
- }
-
- --- 488,501 ----
- continue;
- *cp = NULL;
- }
- ! if (MMailids == 0 || *np == NULL)
- (void) strcpy (username, pw -> pw_name);
- !
- if ((cp = getenv ("SIGNATURE")) && *cp)
- (void) strcpy (fullname, cp);
- if (index(fullname, '.')) { /* quote any .'s */
- char tmp[BUFSIZ];
- ! sprintf (tmp, "\"%s\"", fullname);/* should quote "'s too */
- strcpy (fullname, tmp);
- }
-
- *** ../mh-6.7-dist/conf/doc/MH.rf Wed Jan 29 17:00:07 1992
- --- conf/doc/MH.rf Wed Jan 29 14:51:23 1992
- ***************
- *** 1,3 ****
- .\" @(MHWARNING)
- ! .\" @(#)$Id: MH.rf,v 1.15 91/01/25 15:49:34 mh Exp $
- .po +.75i
- --- 1,3 ----
- .\" @(MHWARNING)
- ! .\" @(#)$Id: MH.rf,v 1.15 1991/01/25 15:49:34 mh Exp jromine $
- .po +.75i
- ***************
- *** 1069,1070 ****
- --- 1069,1071 ----
- .so dist.me
- + .so fmtdump.me
- .so folder.me
- *** ../mh-6.7-dist/conf/doc/mh-alias.rf Fri Dec 14 13:23:55 1990
- --- conf/doc/mh-alias.rf Thu Jan 30 11:05:17 1992
- ***************
- *** 1,3 ****
- .\" @(MHWARNING)
- ! .\" @(#)$Id: mh-alias.rf,v 1.7 90/04/05 15:10:15 sources Exp $
- .SC MH\-ALIAS 5
- --- 1,3 ----
- .\" @(MHWARNING)
- ! .\" @(#)$Id: mh-alias.rf,v 1.8 1992/01/30 19:05:13 jromine Exp $
- .SC MH\-ALIAS 5
- ***************
- *** 119,120 ****
- --- 119,121 ----
- sgroup: fred, fear, freida
- + b-people: Blind List: bill, betty;
- fred: frated@UCI
- ***************
- *** 134,135 ****
- --- 135,140 ----
- the three names \*(lqfrated@UCI\*(rq, \*(rqfear\*(rq, and \*(rqfreida\*(rq.
- + The alias \*(lqb-people\*(rq is a blind list which includes the
- + addresses \*(lqbill\*(rq and \*(lqbetty\*(rq; the message
- + will be delieved to those addresses, but the
- + message header will show only \*(lqBlind List: ;\*(rq (not the addresses).
- Next, the definition of \*(lqUNIX\-committee\*(rq is given by reading
- *** ../mh-6.7-dist/conf/doc/mh-chart.rf Wed Jan 29 17:00:09 1992
- --- conf/doc/mh-chart.rf Wed Jan 29 14:50:54 1992
- ***************
- *** 1,3 ****
- .\" @(MHWARNING)
- ! .\" @(#)$Id: mh-chart.rf,v 2.10 91/01/07 11:13:54 mh Exp $
- .if '\*(ZZ'-man' \{\
- --- 1,3 ----
- .\" @(MHWARNING)
- ! .\" @(#)$Id: mh-chart.rf,v 2.11 1992/01/29 22:50:50 jromine Exp $
- .if '\*(ZZ'-man' \{\
- ***************
- *** 118,119 ****
- --- 118,124 ----
- \%[\-help]
- +
- + .ti .5i
- + .ne 3
- + fmtdump
- + \%[filename]
-
- *** ../mh-6.7-dist/conf/doc/mh-format.rf Wed Jan 29 17:00:10 1992
- --- conf/doc/mh-format.rf Wed Jan 29 14:57:07 1992
- ***************
- *** 1,3 ****
- .\" @(MHWARNING)
- ! .\" @(#)$Id: mh-format.rf,v 1.29 91/01/11 09:17:35 mh Exp $
- .SC MH\-FORMAT 5
- --- 1,3 ----
- .\" @(MHWARNING)
- ! .\" @(#)$Id: mh-format.rf,v 1.30 1992/01/29 22:55:31 jromine Exp $
- .SC MH\-FORMAT 5
- ***************
- *** 203,204 ****
- --- 203,205 ----
- lit literal string Set \fIstr\fR to \fIarg\fR
- + getenv literal string Set \fIstr\fR to environment value of \fIarg\fR
- .\" dat literal int ?
- *** ../mh-6.7-dist/conf/doc/mh-sequence.rf Wed Jan 29 17:00:11 1992
- --- conf/doc/mh-sequence.rf Wed Jan 29 15:43:10 1992
- ***************
- *** 1,3 ****
- .\" @(MHWARNING)
- ! .\" @(#)$Id: mh-sequence.rf,v 1.9 91/01/09 11:34:34 mh Exp $
- .SC MH\-SEQUENCE 5
- --- 1,3 ----
- .\" @(MHWARNING)
- ! .\" @(#)$Id: mh-sequence.rf,v 1.9 1991/01/09 11:34:34 mh Exp jromine $
- .SC MH\-SEQUENCE 5
- ***************
- *** 60,62 ****
- In commands which accept a `msgs' argument, the default is either
- ! \*(lqcur\*(rq or \*(lqall\*(rq, depending on which makes more sense.
- Repeated specifications of the same message have the same effect as
- --- 60,63 ----
- In commands which accept a `msgs' argument, the default is either
- ! \*(lqcur\*(rq or \*(lqall\*(rq, depending on which makes more sense
- ! for each command (see the individual man pages for details).
- Repeated specifications of the same message have the same effect as
- *** ../mh-6.7-dist/conf/doc/refile.rf Wed Jan 29 17:00:14 1992
- --- conf/doc/refile.rf Wed Jan 29 15:51:18 1992
- ***************
- *** 1,3 ****
- .\" @(MHWARNING)
- ! .\" @(#)$Id: refile.rf,v 1.8 91/01/14 16:43:06 mh Exp $
- .SC REFILE 1
- --- 1,3 ----
- .\" @(MHWARNING)
- ! .\" @(#)$Id: refile.rf,v 1.8 1991/01/14 16:43:06 mh Exp $
- .SC REFILE 1
- *** ../mh-6.7-dist/conf/doc/scan.rf Wed Jan 29 17:00:15 1992
- --- conf/doc/scan.rf Wed Jan 29 14:56:25 1992
- ***************
- *** 1,3 ****
- .\" @(MHWARNING)
- ! .\" @(#)$Id: scan.rf,v 1.9 91/01/07 11:13:47 mh Exp $
- .SC SCAN 1
- --- 1,3 ----
- .\" @(MHWARNING)
- ! .\" @(#)$Id: scan.rf,v 1.10 1992/01/29 22:56:18 jromine Exp $
- .SC SCAN 1
- ***************
- *** 87,89 ****
- In addition to the standard \fImh\-format\fR\0(5) escapes,
- ! \fIscan\fR also recognizes the following additional \fIcomponent\fR escape:
- .sp 1
- --- 87,89 ----
- In addition to the standard \fImh\-format\fR\0(5) escapes,
- ! \fIscan\fR also recognizes the following additional \fIcomponent\fR escapes:
- .sp 1
- ***************
- *** 93,94 ****
- --- 93,95 ----
- body string the (compressed) first part of the body
- + folder string the name of the current folder
- .re
- *** /dev/null Thu Jan 30 13:49:21 1992
- --- conf/examples/ncr-sys5.4.2 Tue Aug 6 10:35:06 1991
- ***************
- *** 0 ****
- --- 1,32 ----
- + # an NCR system: Unix System V Release 4.0.2.0 (WINS)
- + # running MMDF2 with SMTP posting
- + #
- + # Apparently, there are two compilation environments: 4.2BSD and SYS5.
- + # To use the socket() syscall, you evidently need the 4.2BSD environment.
- + # This means that you must use /usr/ucb/cc to compile the system.
- + #
- + # uip/vmh.c still won't compile because of loader problems with the
- + # curses & termlib libraries. NCR should fix their loader not to try to
- + # search additional libraries for modules that have already been found.
- + #
- + bin /usr/local
- + etc /usr/local/lib/mh
- + mail .mail
- + manuals gen
- + chown /usr/bin/chown
- + mts mmdf2/smtp
- + mf off
- + bboards off
- + bbdelivery off
- + cc /usr/ucb/cc
- + oldload none
- + ldoptlibs -lucb
- + curses -ltermlib -lcurses
- + ranlib off
- + sprintf char *
- + options ncr
- + options BSD42
- + options LOCKF
- + options MORE='"/usr/bin/more"'
- + options TZNAME
- + options TYPESIG=void
- *** /dev/null Thu Jan 30 13:49:21 1992
- --- conf/examples/uci.sequent Thu Jan 30 13:05:24 1992
- ***************
- *** 0 ****
- --- 1,38 ----
- + # uci.sun - for a Sequent running Dynix 3.0.17
- + bin /usr/local/mh-6.7.2
- + bbhome /usr/bboards
- + etc /usr/local/lib/mh-6.7.2
- + mail /usr/spool/mail
- + mailgroup off
- + mandir /usr/man
- + manuals local
- + chown /etc/chown
- + editor prompter
- + remove mv -f
- + mts mmdf2/smtp
- + bboards nntp
- + bbdelivery on
- + mf off
- + pop on
- + options BIND
- + options BSD42
- + options BSD43
- + #options DBM
- + #options LOCKF
- + options MHE
- + options MHRC
- + #options NFS
- + options POP2
- + options RPATHS
- + options RPOP
- + #options SUN40
- + #options TYPESIG=void
- + options WHATNOW
- + options UCI
- + #options ZONEINFO
- + cc atscc
- + ldoptions -s
- + ldoptlibs -ldbm -lseq
- + curses -lcurses -ltermcap
- + ranlib on
- + sharedlib off
- *** ../mh-6.7-dist/conf/examples/uci.sun Wed Jan 29 17:00:16 1992
- --- conf/examples/uci.sun Tue Jan 28 15:07:56 1992
- ***************
- *** 1,5 ****
- # uci.sun - for a Sun3 or Sun4 running Sun OS 4.1
- ! bin /usr/local
- bbhome /usr/bboards
- ! etc /usr/local/lib/mh
- mail /usr/spool/mail
- --- 1,5 ----
- # uci.sun - for a Sun3 or Sun4 running Sun OS 4.1
- ! bin /usr/local/mh-6.7.2
- bbhome /usr/bboards
- ! etc /usr/local/lib/mh-6.7.2
- mail /usr/spool/mail
- ***************
- *** 7,9 ****
- mandir /usr/man
- ! manuals local
- chown /etc/chown
- --- 7,10 ----
- mandir /usr/man
- ! #manuals local
- ! manuals gen
- chown /etc/chown
- ***************
- *** 20,22 ****
- options DBM
- ! options LOCKF
- options MHE
- --- 21,23 ----
- options DBM
- ! #options LOCKF
- options MHE
- ***************
- *** 27,30 ****
- options RPOP
- ! options SUN40
- options SUNVIBUG
- options TYPESIG=void
- --- 28,33 ----
- options RPOP
- ! options SUN40
- ! options SUN41
- options SUNVIBUG
- + options ATTVIBUG
- options TYPESIG=void
- ***************
- *** 33,34 ****
- --- 36,39 ----
- #options ZONEINFO
- + # for Sun4s
- + cc /usr/bs/sunc/cc
- ldoptions -s
- *** /dev/null Thu Jan 30 13:49:21 1992
- --- conf/examples/uci.sun.debug Tue Feb 12 15:57:14 1991
- ***************
- *** 0 ****
- --- 1,41 ----
- + # uci.sun - for a Sun3 or Sun4 running Sun OS 4.1
- + bin /usr/local
- + bbhome /usr/bboards
- + etc /usr/local/lib/mh
- + mail /usr/spool/mail
- + mailgroup off
- + mandir /usr/man
- + manuals local
- + chown /etc/chown
- + editor prompter
- + remove mv -f
- + mts mmdf2/smtp
- + bboards nntp
- + bbdelivery off
- + mf off
- + pop on
- + options BIND
- + options BSD42
- + options BSD43
- + options DBM
- + options LOCKF
- + options MHE
- + options MHRC
- + options NFS
- + options POP2
- + options RPATHS
- + options RPOP
- + options SUN40
- + options SUNVIBUG
- + options TYPESIG=void
- + options WHATNOW
- + options UCI
- + #options ZONEINFO
- + ccoptions -g
- + #ldoptions -s
- + ldoptlibs -ldbm
- + curses -lcurses -ltermcap
- + ranlib on
- + #sharedlib on
- + sharedlib off
- + slibdir /usr/local/lib
- *** ../mh-6.7-dist/conf/makefiles/doc Wed Jan 29 17:00:17 1992
- --- conf/makefiles/doc Wed Jan 29 15:33:36 1992
- ***************
- *** 4,6 ****
- # @(MHWARNING)
- ! # @(#)$Id: doc,v 2.12 91/01/25 15:49:10 mh Exp $
- ##############################################################################
- --- 4,6 ----
- # @(MHWARNING)
- ! # @(#)$Id: doc,v 2.13 1992/01/29 23:33:31 jromine Exp $
- ##############################################################################
- ***************
- *** 84,86 ****
-
- ! .me.doc:; nroff -me $< > $@
-
- --- 84,86 ----
-
- ! .me.doc:; nroff -Tlpr -me $< > $@
-
- *** ../mh-6.7-dist/conf/makefiles/sbr Fri Dec 14 13:24:09 1990
- --- conf/makefiles/sbr Thu Jan 30 08:36:20 1992
- ***************
- *** 4,6 ****
- # @(MHWARNING)
- ! # @(#)$Id: sbr,v 2.9 90/04/08 22:00:14 sources Exp $
- ##############################################################################
- --- 4,6 ----
- # @(MHWARNING)
- ! # @(#)$Id: sbr,v 2.12 1992/01/30 16:36:16 jromine Exp $
- ##############################################################################
- ***************
- *** 22,24 ****
- @BEGIN: STDLIB
- ! LIB = libmh.a
- @END: STDLIB
- --- 22,24 ----
- @BEGIN: STDLIB
- ! LIBS = libmh.a
- @END: STDLIB
- ***************
- *** 25,27 ****
- @BEGIN: SHAREDLIB
- ! LIB = libmh.so
- SLIBDIR = @(SLIBDIR)
- --- 25,28 ----
- @BEGIN: SHAREDLIB
- ! LIBS = shared libmh.a libmh.so libmh.sa
- ! SLIBVER = @(SLIBVER)
- SLIBDIR = @(SLIBDIR)
- ***************
- *** 44,47 ****
- showfile.c smatch.c sprintb.c ssequal.c strindex.c trimcpy.c \
- ! uleq.c uprf.c vfgets.c
-
- OFILES = add.o adios.o admonish.o addrsbr.o advertise.o advise.o \
- --- 45,49 ----
- showfile.c smatch.c sprintb.c ssequal.c strindex.c trimcpy.c \
- ! uleq.c uprf.c vfgets.c formatdef.c m_msgdef.c
-
- +
- OFILES = add.o adios.o admonish.o addrsbr.o advertise.o advise.o \
- ***************
- *** 59,62 ****
- showfile.o smatch.o sprintb.o ssequal.o strindex.o trimcpy.o \
- ! uleq.o uprf.o vfgets.o
-
-
- --- 61,67 ----
- showfile.o smatch.o sprintb.o ssequal.o strindex.o trimcpy.o \
- ! uleq.o uprf.o vfgets.o formatdef.o m_msgdef.o
-
- + @BEGIN: SHAREDLIB
- + ODEFS = formatdef.o m_msgdef.o
- + @END: SHAREDLIB
-
- ***************
- *** 67,73 ****
-
- @BEGIN: SHAREDLIB
- ! .c.o:; $(CC) $(CFLAGS) -c $*.c -pic
- @END: SHAREDLIB
- ! @BEGIN: STDLIB
- ! .c.o:; $(CC) $(CFLAGS) -c $*.c
- @BEGIN: NEWLOAD
- --- 72,81 ----
-
- + .c.o:
- @BEGIN: SHAREDLIB
- ! -rm -f $@ shared/$@
- ! $(CC) $(CFLAGS) -c -pic $*.c
- ! mv $@ shared/$@
- ! -rm -f $@
- @END: SHAREDLIB
- ! $(CC) $(CFLAGS) -c $*.c
- @BEGIN: NEWLOAD
- ***************
- *** 79,83 ****
- @END: OLDLOAD
- - @END: STDLIB
-
- -
- @END: OPTIM
- --- 87,89 ----
- ***************
- *** 87,93 ****
-
- ! all: version $(LIB)
-
- ! $(LIB): $(OFILES)
- -mv $@ z$@
- - @BEGIN: STDLIB
- @BEGIN: RANLIB
- --- 93,98 ----
-
- ! all: $(LIBS)
-
- ! libmh.a: $(OFILES)
- -mv $@ z$@
- @BEGIN: RANLIB
- ***************
- *** 100,106 ****
- -@echo "MH library built normally"
- ! @END: STDLIB
- @BEGIN: SHAREDLIB
- ! ld -o $@ $(OFILES)
- ! -@rm -f $@.`cat version`
- ! ln $@ $@.`cat version`
- -@ls -l $@*
- --- 105,113 ----
- -@echo "MH library built normally"
- !
- @BEGIN: SHAREDLIB
- ! libmh.so: $(OFILES)
- ! -mv -f $@ z$@
- ! (cd shared; ld -o ../$@ -assert pure-text $(OFILES))
- ! -@rm -f $@.$(SLIBVER)
- ! ln $@ $@.$(SLIBVER)
- -@ls -l $@*
- ***************
- *** 107,113 ****
- -@echo "MH shared library built normally"
- - @END: SHAREDLIB
-
- ! version: $(CFILES)
- ! @/bin/sh version.sh @(MHRELEASE)
-
-
- --- 114,131 ----
- -@echo "MH shared library built normally"
-
- ! libmh.sa: $(ODEFS)
- ! -mv $@ z$@
- ! @BEGIN: RANLIB
- ! ar r $@ $(ODEFS); ranlib $@
- ! @END: RANLIB
- ! @BEGIN: LORDER
- ! ar r $@ `lorder $(ODEFS) | tsort`
- ! @END: LORDER
- ! -@rm -f $@.$(SLIBVER)
- ! ln $@ $@.$(SLIBVER)
- ! -@ls -l $@*
- ! -@echo "MH data interface description built normally"
-
- + shared:; @if [ -d shared ]; then exit 0; else set -x; mkdir shared; fi
- + @END: SHAREDLIB
-
- ***************
- *** 118,126 ****
- @BEGIN: SHAREDLIB
- ! inst-lib: $(LIB)
- ! -rm -f $(SLIBDIR)/$(LIB)
- ! cp $(LIB) $(SLIBDIR)/$(LIB).`cat version`
- ! -@chmod $(PGMPROT) $(SLIBDIR)/$(LIB).`cat version`
- ! -@ls -l $(SLIBDIR)/$(LIB)*
- ! -@echo "Library installed normally"
- -@echo ""
- @END: SHAREDLIB
- --- 136,150 ----
- @BEGIN: SHAREDLIB
- ! inst-lib: libmh.so libmh.sa
- ! -rm -f $(SLIBDIR)/libmh.so.$(SLIBVER)
- ! cp libmh.so.$(SLIBVER) $(SLIBDIR)/libmh.so.$(SLIBVER)
- ! -@chmod $(PGMPROT) $(SLIBDIR)/libmh.so.$(SLIBVER)
- ! -@ls -l $(SLIBDIR)/libmh.so.*
- ! -@echo "Shared library installed normally"
- -@echo ""
- + -rm -f $(SLIBDIR)/libmh.sa.$(SLIBVER)
- + cp libmh.sa.$(SLIBVER) $(SLIBDIR)/libmh.sa.$(SLIBVER)
- + -@chmod $(PGMPROT) $(SLIBDIR)/libmh.sa.$(SLIBVER)
- + -@ls -l $(SLIBDIR)/libmh.sa.*
- + -@echo "Data interface description installed normally"
- + -@echo ""
- @END: SHAREDLIB
- ***************
- *** 134,135 ****
- --- 158,160 ----
- -rm -f Makefile
- + -rm -rf shared
-
- ***************
- *** 140,143 ****
- -rm -f *.o libmh.*
-
- ! unclean:; -rm -f z$(LIB) _* :* core eddep makedep
-
- --- 165,171 ----
- -rm -f *.o libmh.*
- + @BEGIN: SHAREDLIB
- + -rm -f shared/*.o
- + @END: SHAREDLIB
-
- ! unclean:; -rm -f zlibmh.* _* :* core eddep makedep
-
- *** ../mh-6.7-dist/conf/makefiles/uip Wed Jan 29 17:00:18 1992
- --- conf/makefiles/uip Fri Jan 24 15:19:02 1992
- ***************
- *** 4,6 ****
- # @(MHWARNING)
- ! # @(#)$Id: uip,v 2.12 91/01/25 15:50:18 mh Exp $
- ##############################################################################
- --- 4,6 ----
- # @(MHWARNING)
- ! # @(#)$Id: uip,v 2.14 1992/01/24 23:18:46 jromine Exp $
- ##############################################################################
- ***************
- *** 139,141 ****
- MISC = ap conflict dp install-mh mhl post rcvdist rcvpack rcvstore \
- ! rcvtty fmtdump \
- @BEGIN: SENDMTS
- --- 139,141 ----
- MISC = ap conflict dp install-mh mhl post rcvdist rcvpack rcvstore \
- ! rcvtty fmtdump sendmail \
- @BEGIN: SENDMTS
- ***************
- *** 153,155 ****
- inst-post inst-rcvdist inst-rcvpack inst-rcvstore inst-rcvtty \
- ! inst-fmtdump $(IMTSMISC) \
- @BEGIN: SENDMTS
- --- 153,155 ----
- inst-post inst-rcvdist inst-rcvpack inst-rcvstore inst-rcvtty \
- ! inst-fmtdump inst-sendmail $(IMTSMISC) \
- @BEGIN: SENDMTS
- ***************
- *** 164,166 ****
- LMISC = l-ap l-conflict l-dp l-install-mh l-mhl l-post l-rcvdist \
- ! l-rcvpack l-rcvstore l-rcvtty l-fmtdump \
- $(LMTSMISC) $(LBBMISC) \
- --- 164,166 ----
- LMISC = l-ap l-conflict l-dp l-install-mh l-mhl l-post l-rcvdist \
- ! l-rcvpack l-rcvstore l-rcvtty l-fmtdump l-sendmail \
- $(LMTSMISC) $(LBBMISC) \
- ***************
- *** 176,178 ****
- TMISC = xap xconflict xdp xinstall-mh xmhl xpost xrcvdist xrcvpack \
- ! xrcvstore xrcvtty xfmtdump \
- $(TMTSMISC) $(TBBMISC) $(TPOPMISC) \
- --- 176,178 ----
- TMISC = xap xconflict xdp xinstall-mh xmhl xpost xrcvdist xrcvpack \
- ! xrcvstore xrcvtty xfmtdump xsendmail \
- $(TMTSMISC) $(TBBMISC) $(TPOPMISC) \
- ***************
- *** 1088,1089 ****
- --- 1088,1107 ----
- @END: SENDMTS
- +
- +
- + inst-sendmail: $(ETCDIR)/sendmail
- +
- + $(ETCDIR)/sendmail: xsendmail
- + -$(REMOVE) $@ zsendmail
- + cp xsendmail $@
- + -@chmod $(PGMPROT) $@
- + -@ls -l $@
- + -@echo "Don't forget to: ln -s /usr/lib/sendmail $@"
- + -@echo ""
- +
- + sendmail: xsendmail
- +
- + xsendmail: sendmail.o $(LIBES)
- + $(LD) $(LDFLAGS) -o $@ sendmail.o $(LDLIBS)
- +
- + l-sendmail:; $(LINT) $(LFLAGS) sendmail.c $(LLIBS)
-
- *** ../mh-6.7-dist/conf/makefiles/zotnet/bboards Fri Dec 14 13:24:10 1990
- --- conf/makefiles/zotnet/bboards Wed Jan 29 15:06:46 1992
- ***************
- *** 4,6 ****
- # @(MHWARNING)
- ! # @(#)$Id: bboards,v 1.6 90/04/05 15:16:32 sources Exp $
- ##############################################################################
- --- 4,6 ----
- # @(MHWARNING)
- ! # @(#)$Id: bboards,v 1.6 1990/04/05 15:16:32 sources Exp $
- ##############################################################################
- *** ../mh-6.7-dist/conf/makefiles/zotnet/mf Fri Dec 14 13:24:10 1990
- --- conf/makefiles/zotnet/mf Wed Jan 29 15:10:16 1992
- ***************
- *** 4,6 ****
- # @(MHWARNING)
- ! # @(#)$Id: mf,v 1.5 90/04/05 15:16:45 sources Exp $
- ##############################################################################
- --- 4,6 ----
- # @(MHWARNING)
- ! # @(#)$Id: mf,v 1.6 1992/01/29 23:10:03 jromine Exp $
- ##############################################################################
- ***************
- *** 36,37 ****
- --- 36,38 ----
-
- + .c:; echo $@
-
- *** ../mh-6.7-dist/conf/makefiles/zotnet/mts Fri Dec 14 13:24:10 1990
- --- conf/makefiles/zotnet/mts Wed Jan 29 15:10:19 1992
- ***************
- *** 4,6 ****
- # @(MHWARNING)
- ! # @(#)$Id: mts,v 1.6 90/04/05 15:16:53 sources Exp $
- ##############################################################################
- --- 4,6 ----
- # @(MHWARNING)
- ! # @(#)$Id: mts,v 1.7 1992/01/29 23:10:03 jromine Exp $
- ##############################################################################
- ***************
- *** 32,33 ****
- --- 32,34 ----
-
- + .c:; echo $@
-
- *** ../mh-6.7-dist/conf/makefiles/zotnet/tws Fri Dec 14 13:24:11 1990
- --- conf/makefiles/zotnet/tws Wed Jan 29 16:31:24 1992
- ***************
- *** 4,6 ****
- # @(MHWARNING)
- ! # @(#)$Id: tws,v 1.9 90/04/05 15:16:39 sources Exp $
- ##############################################################################
- --- 4,6 ----
- # @(MHWARNING)
- ! # @(#)$Id: tws,v 1.10 1992/01/30 00:31:18 jromine Exp $
- ##############################################################################
- ***************
- *** 77,78 ****
- --- 77,85 ----
- ######################################################################
- +
- + lex: zap-dtime dtimep.c
- +
- + zap-dtime:; rm -f dtimep.c
- +
- +
- + ######################################################################
- # dtime
- ***************
- *** 89,90 ****
- --- 96,98 ----
-
- +
- unconfig: distribution
- ***************
- *** 95,97 ****
- clean: unclean
- ! -rm -f dtimep.c *.o date
-
- --- 103,105 ----
- clean: unclean
- ! -rm -f *.o date
-
-